无法写入文件

时间:2019-05-17 14:20:13

标签: c file sockets

我有一个奇怪的问题,我正在构建一个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

我很乐于助人,因为我一无所知...

1 个答案:

答案 0 :(得分:3)

假设服务器在运行功能writeFile后仍保持运行,则不会关闭输出文件。输出位于缓存中,尚未写入文件。

程序退出时,文件自动关闭。在其他程序中使用此代码时,可能有区别。

fclose(f);之后添加fputs("hello",f);,以关闭文件。

如评论中所述,您应始终检查函数的返回码并处理错误。