我正在创建一个调度软件,我在文本文件中描述了数百个数据集。 我使用带有循环的dirent.h来读取文本文件,为每个文件制作一个时间表并将结果附加到另一个文本文件(如cpu时间,数据集名称,迟到......),此文件对所有时间表都是通用的。
我只打开/关闭结果文件一次(循环前fopen()
,完成所有计划后循环后fclose()
。
我在Windows 7上没有问题,但是在Linux下,由于某种超时,系统似乎关闭了该文件,我只安排了9-10个数据集(~2)小时)以及它被卡住后因为它无法写入结果文件:/
有没有人遇到过这种麻烦并找到了解决方案?
答案 0 :(得分:1)
Linux不会自动关闭文件。你的代码出了点问题。
尝试使用“strace”运行您的程序,并确定close()
发生的位置。
strace -f -o 1.txt ./my_best_app_ever
使用文本编辑器(或1.txt
)打开less
文件,看看您的应用正在做什么。