c - 无法写入文件
问题描述
我有一个奇怪的问题,我正在构建一个 C 套接字服务器,我的服务器中包含 2 个文件,
在我试图写入我创建的文件的文件之一中,所以我的 server.c 中有 server.c 我有 Dir.c,其中仅包含以下函数:
void writeFile(){
FILE* f;
f=fopen("test.txt","w");
fputs("hello",f);
}
现在为了它,它创建了文件,但是当我打开它时它是空的,但是当我将此代码复制到另一个文件并在那里运行它时,我得到我的文件,其中写有值 hello,我绝对没有知道为什么会这样,这就是我编译程序的方式:
gcc Dir.c server.c -lpthread -o server
我很想得到一些帮助,因为我一无所知...
解决方案
假设您的服务器在运行函数后继续运行,您writeFile
不会关闭输出文件。输出在缓存中,尚未写入文件。
当您的程序退出时,文件会自动关闭。这可能是您在其他程序中使用此代码时的区别。
添加fclose(f);
之后fputs("hello",f);
以关闭文件。
正如评论中提到的,您应该始终检查函数的返回码并处理错误。
推荐阅读
- amazon-web-services - 如何知道其他 AWS 服务是否正在使用 AWS S3?
- windows - CBS.log 中的 CSI 代表什么
- python - 我无法在 repl.it 中导入 pywhatkit
- react-native - 将参数处理为获取的对象
- c - 如何在具有较高优先级的操作之前在 C 中运行具有较低优先级的操作
- c++ - 在 Visual Studio 中混合 C++ 和程序集会导致链接器错误
- stata - 纵向数据集分类变量
- python - 如何在 TextInput 小部件上设置默认值?
- android - 错误 "> 无法解析配置 ':classpath' 的所有工件。" 在 Android Studio 上
- reactjs - 使用 react-snapshot 时 npm 运行构建错误