实例汇总
1、给一个文件,每行都是数字,以逗号分隔,求第两列的和。
使用popen进行打开awk命令处理后的输出,并通过fgets返回结果count。
1 /* Copyright (C) 2019 * Ltd. All rights reserved. 2 * Create date : 2019-08-05 16:02:01 3 *================================================*/ 4 5 #include <stdio.h> 6 #include <string.h> 7 #include <errno.h> 8 9 int main() 10 { 11 FILE *fp = NULL; 12 fp = popen("awk -F ',' 'BEGIN{count=0;}{count=count+$2;}END{printf("%d", count)}' a.txt", "r"); 13 if(fp == NULL) 14 { 15 printf("%s ", strerror(errno)); 16 return -1; 17 } 18 printf("fopen is ok "); 19 20 int count = 0; 21 char line[1024] = {0}; 22 while(fgets(line, 1024, fp) != NULL) 23 { 24 printf("line = %d ", atoi(line)); 25 } 26 27 return 0; 28 }
参考
基础知识
大致范围: c++后台开发
基础题: C/C++基础题 常见题型总结 经典题型 Tencent 珍藏版本 浮点数相等 空类对象大小
库函数: 常见的库函数详解
调试: GDB调试技巧
结构体: 结构体零数组妙用
类对象: 重载、覆盖和隐藏 构造函数和析构函数的调用顺序
容器: vector迭代器失效
操作系统: Centos7启动过程详解
重要知识: #if和#ifdef的区别 有趣的位操作
数据结构与算法
数据结构总结: 数据结构教程
数组: 数组总结
链表: 单链表反转 链表的快慢指针 链表头结点 头结点的优势 链表总结(循环双链表图文 )
查找: 二分查找
排序: 快速排序
二叉树: 二叉树-构建 深度优先遍历、广度优先遍历 之字形打印二叉树
递归调用: 汉诺塔
数据库
MySQL优化技巧 MySQL的两种数据库引擎的区别 深入理解MySQL乐观锁与悲观锁 group by用法 left jion用法 索引原理
多进程编程
多进程编程 进程间通信之管道 进程间通信之共享内存 进程间通信之Unix Domain Socket 进程间通信之信号 进程间通信之信号量 进程间通信之消息队列 SIGINT和SIGPIPE 孤儿进程、僵尸进程和守护进程 进程状态 模拟实现一个简单的shell
多线程编程
多线程编程 线程间通信之互斥锁 进程间通信之条件变量 进程间通信之posix匿名信号量
TCP/IP编程
深入浅出TCP/IP协议栈 socket编程(1) socket编程(2) socket编程(3) socket编程(4) select、poll和epoll的区别 三次握手和四次挥手 getpeername等函数使用