C 内存泄漏 CPU占用率过高问题

一。CPU占用率过高

while(1);空循环应加sleep延时。会造成CPU占用率过高

内存泄漏

二。内存泄漏 (fopen后要记得fclose,malloc之后要记得free,new之后要记得delete)

1.分配动态内存忘记释放

     ifconfig_value = (char*)malloc(20);  

     free(ifconfig_value);  

2.数据库打开忘记关闭 

       rc = sqlite3_open("GateWay.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件

       sqlite3_free_table( azResult );//释放掉 azResult 的内存空间
       sqlite3_close(db); //关闭数据库

3.文件打开忘记关闭内存泄漏,不断的消耗内存,尤其是频繁的查询数据库,一定要用一次关一次

    int fd = open("/proc/net/dev", O_RDONLY | O_EXCL);  

    close(fd);  //)会让数据写回磁盘, 并释放该文件所占用的资源. 参数fd 为先前由open()或creat()所返回的文件描述词.

你可能感兴趣的:(linux,C)