Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 多个“文件”追加到同一文件_C_Stdio - Fatal编程技术网

C 多个“文件”追加到同一文件

C 多个“文件”追加到同一文件,c,stdio,C,Stdio,POSIX和/或C标准对附加模式下指向文件系统中相同位置的多个文件结构有何规定?具体来说,每个文件在每次写入后都将被刷新。例如,在此代码中: 文件*a=fopenfoo,a; 文件*b=fopenfoo,a; fputc'a',a; 福鲁沙; fputc'b',b; fflushb; fclosea; fcloseb; foo的内容始终是ab,还是结果不确定?本例中的文件内容始终是ab。C标准有以下语言: 7.21.5.3 fopen功能 以附加模式“a”作为模式参数中的第一个字符打开文件会导

POSIX和/或C标准对附加模式下指向文件系统中相同位置的多个文件结构有何规定?具体来说,每个文件在每次写入后都将被刷新。例如,在此代码中:

文件*a=fopenfoo,a; 文件*b=fopenfoo,a; fputc'a',a; 福鲁沙; fputc'b',b; fflushb; fclosea; fcloseb;
foo的内容始终是ab,还是结果不确定?

本例中的文件内容始终是ab。

C标准有以下语言:

7.21.5.3 fopen功能

以附加模式“a”作为模式参数中的第一个字符打开文件会导致对文件的所有后续写入都被强制到文件的当前结尾,而不考虑对fseek函数的中间调用。在一些实现中,由于空字符填充,在上述模式参数值列表中以附加模式“b”作为第二个或第三个字符打开二进制文件时,可能会首先将流的文件位置指示符定位在最后写入的数据之外

我认为这明确规定,只要文件在执行后不存在或是空的,并且文本文件没有诸如自动添加换行符之类的奇怪行为,那么发布的代码应该在执行后生成包含ab的文件


I文件是以二进制模式打开的,内容肯定是ab。

。这个答案虽然简洁,但回答了一个问题:foo的内容总是ab,还是结果不确定?准确地说。被否决的选民应该撤回他们被否决的选票。@Ryker不能。此外,这并不能回答POSIX和/或C标准对附加模式下指向文件系统中同一位置的多个文件结构的看法?