小编Met*_*tNP的帖子

C fopen模式读+写+创建

我想:

\n\n
\n
    \n
  1. 如果文件不存在则创建,not overwritten if it does.
  2. \n
  3. fseek随时随地阅读和写作
  4. \n
\n
\n\n

我找不到有效模式 \xe2\x80\x94 "w+", "rw" "rwb+" "r+b" "w+b" "a+" 或者什么?

\n\n

表现良好的基本级别open是:

\n\n
int fd =open("fname", O_RDWR | O_CREAT, 0666);\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我想知道fopen alternative。\n我尝试的每个模式字母 [w, r, a, +] 组合要么会覆盖内容,要么 fseek-fwrite 不会写在它应该写的地方。“a+”将始终附加,无论fseek设置如何...“rw+”工作正常,但不会创建不存在的文件...等。

\n\n

更新:澄清为什么“a+”不是一个解决方案:

\n\n
#include <stdio.h>\nint main()\n{  FILE *fp =fopen("aaa.txt", "a+");\n   fwrite("aaaaaaaaaaaaaaaaaaa", 1, 10, fp);\n   fseek(fp, 5, SEEK_SET);\n   fwrite("AAA", 1, 3, fp);\n   fclose(fp);\n   return 0;\n}\nrunned with: $ rm aaa.txt; …
Run Code Online (Sandbox Code Playgroud)

c fopen

3
推荐指数
2
解决办法
3423
查看次数

标签 统计

c ×1

fopen ×1