小编Pau*_*hen的帖子

如果我的程序通过CTRL-C终止,为什么使用fprintf输出的字符串最终没有写入输出文件?

为什么fprintf在以下示例程序中给出不同的结果?

例1:

int main(){
    FILE *f;
    char buf[512];
    char name[128] = {"filename"};

    f = fopen(name, "w");
    fprintf(f, "asdas\n");
    fprintf(f, "asdas\n");
    while(1){}
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我使用CTRL+ 终止此程序C,我会得到一个名为的文件filename.

但是,使用

例2:

int main(){
    FILE *f;
    char buf[512];
    char name[128] = {"wpa_supplicant.conf"};

    f = fopen(name,"w");
    while(1){
        fprintf(f, "asdas\n");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我使用CTRL+ 终止这个程序C,我得到文件命名filename,它包含许多带字符串的行asdas.

为什么在第一个示例中字符串没有写入文件,但是在第二个示例中它们被写入文件?

c file-io printf

3
推荐指数
1
解决办法
240
查看次数

标签 统计

c ×1

file-io ×1

printf ×1