fopen-r+
fopen の r+ の動作を試してみた。サンプルの内容はこんな感じ。
#include <stdio.h> #include <stdlib.h> int main(void){ FILE *fp; char s[1024]; if(( fp = fopen("xxxxx.txt", "r+")) == NULL ){ perror(NULL); exit(EXIT_FAILURE); } while( fgets(s, 1024, fp) != NULL ){ printf("%s", s); } fprintf(fp, "%s", "YYYYYYYYYYY\n"); fclose(fp); return 0; }
xxxxx.txt というファイルの読み書きを行う。実行例は以下。
$ ls fopen-r+.c $ gcc fopen-r+.c $ ls a.out fopen-r+.c $ $ ./a.out No such file or directory $ $ echo 1111111111 > xxxxx.txt $ ls a.out fopen-r+.c xxxxx.txt $ $ ./a.out 1111111111 $ cat xxxxx.txt 1111111111 YYYYYYYYYYY $
ファイルが存在しない場合は、No such file or directory になる。