随笔分类 -  C/C++

AIX7.1删除大批量文件(百万级、千万级)
摘要:假设/data/test目录下含有数百万上千万的文件需要删除,可以选择的方式如下: 1.如果文件名不包含空白符、引号等特殊字符,则可以使用如下命令: 2.如果文件名包含空白符、引号等特殊字符,则在linux中使用如下命令: 而我所用的AIX7.1平台的xargs不支持-0选项,于是决定采用方式3:c 阅读全文

posted @ 2018-08-06 14:26 deodara 阅读(1816) 评论(0) 推荐(2)

valgrind检查still reachable情况
摘要:valgrind --leak-check=yes检查bufr编解码程序运行时提示still reachable: 568 bytes in 1 blocks,如下图示: 于是怀疑有内存泄漏,难道是malloc或calloc后没有free?但这样仍看不出哪里代码出了问题,于是开启valgrind的选 阅读全文

posted @ 2018-06-22 10:43 deodara 阅读(1927) 评论(0) 推荐(1)

Linux c readdir是非线程安全,需用readdir_r,要注意用静态变量当做返回值的函数的非线程安全性
摘要:readdir函数: struct dirent *readdir(DIR *dirp); The data returned by readdir() may be overwritten by subsequent calls to readdir() for the same director 阅读全文

posted @ 2018-01-19 09:35 deodara 阅读(719) 评论(0) 推荐(0)

编码规范
摘要:1. 确保使用的函数和数据结构在特定情境下的安全,不一定要确保在所有情境下的安全,但一定要保证所在使用的情景下的安全。比如snprintf与sprintf, strncpy与strcpy等。 阅读全文

posted @ 2018-01-05 10:39 deodara 阅读(147) 评论(0) 推荐(0)

C语言关闭日志文件时忘了将日志文件全局变量指针置为NULL
摘要:C语言写了一个write_log函数以写日志,写了一个close_log_file函数以关闭日志,声明了一个日志文件全局变量文件指针plogFile。 write_log中首先判断plogFile是否为NULL,如果不为NULL,则直接引用plogFile写日志信息; 如果为NULL,则打开以当天日 阅读全文

posted @ 2017-12-21 11:25 deodara 阅读(434) 评论(0) 推荐(0)

linux C 刚初始化后的一个变量在调用一个静态库中函数后被异常修改为乱码
摘要:linux C 中声明并初始化一个变量const char a[512]="test";后,接着调用了一个静态库中的函数函数test(b);,a并没有传入test函数,但在调用这个函数后a的值就改变了,变成了类似于??@????的乱码。 原来是因为静态库头文件包含错误:静态库也是自己写的,在使用时包 阅读全文

posted @ 2016-02-18 15:45 deodara 阅读(352) 评论(0) 推荐(0)

导航