注意

来源:互联网 发布:is淘宝刷到单流程视频 编辑:程序博客网 时间:2024/04/26 13:11
system("your command");
问题:在时间要求比较高的程序中尤其要注意,system要等到命名执行完毕之后才会返回;比如system("curl -s 'url'");若垃取不到会使程序处于等待之中。

解决:在命令尾部增加&,使之fork子进程并在后台运行。


for(unsigned int t=vec.size()-1;t >= 0;--t){     //your code}
问题:看似很酷炫,实际暗藏杀机,使程序陷入无限循环之中。
解决:无符号整型改采用整型。


char sql[1024];snprintf(sql,sizeof(sql)-1,"update table_name set c_c ='%s' where c_a = 'xx'; ",str);mysql -h -u -p -N -e"sql"
类似的还有/replace/insert/delete,十分危险,不要相信概率觉得被截断也不会出事。莫菲定律:凡事只要有可能出错,那就一定会出错。


char vid[64];string str;char sTemp[64];memcpy(vid,str.data(),str.size());memcpy(vid,sTemp,strlen(sTemp));
问题:两种用法都是错误的,memcpy是内存拷贝,其中第三个参数指定拷贝的字节数。第一种情况可导致内存溢出;第二种情况当sTemp长度缩短,再次执行memcpy,vid中包含之前的数据。
解决:memset(vid,0,strlen(vid)); 或使用strncpy。


待续……