程序主线程为了挂起,采用了
while(1) {
fscanf读取输入数字,若为0,则退出;
};
之后程序采用nohup后台运行,发现cpu占用100%,而程序在shell下运行,则cpu近乎0占用。
原因:
fscanf 的读操作等待 与nohup的 写操作会冲突(机制尚不明确),导致cpu占用100%。
措施:
采用sleep的方式挂起,问题解决。
本文描述了一个使用fscanf进行输入等待的程序,在nohup后台运行时导致CPU占用率异常升高的问题及解决方案。通过分析发现,fscanf的读操作与nohup的写操作存在冲突,最终通过采用sleep方式挂起来解决此问题。
程序主线程为了挂起,采用了
while(1) {
fscanf读取输入数字,若为0,则退出;
};
之后程序采用nohup后台运行,发现cpu占用100%,而程序在shell下运行,则cpu近乎0占用。
原因:
fscanf 的读操作等待 与nohup的 写操作会冲突(机制尚不明确),导致cpu占用100%。
措施:
采用sleep的方式挂起,问题解决。
1635

被折叠的 条评论
为什么被折叠?