[C言語] ファイルにデータ書き込み

C言語を使ってファイルに文字列を書き込むソースをメモしておきます。
全く現段階では、使い予定のないソースコードですが、プログラム勉強におけるデータ書き出し処理として、
参考程度にしてもらえるといいかと思います。
ソースコード
fileWrite.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#include <stdio .h> #include <stdlib .h> #include <string .h> /** * ファイル書き込み * クエリ情報の書き込み(追記型) **/ void main (int argc,char *argv[]){ // ファイルポインタの宣言 FILE *file; // ファイルのオープン file = fopen("./data.txt", "a"); //チェック if(file == NULL){ printf("Not file open!"); exit(1); } char *str; int i; for(i=1; i<argc ; i++){ strcat(str, argv[i]); strcat(str, ","); } strcat(str, "\n"); // ファイルの書き込み fprintf(file, str); printf("%s", str); // ファイルクローズ fclose(file); } |
解説
ファイルのデータ書き込みは、工程さえ押さえておけば非常に簡単に行なえます。
1. ファイルオープン
2. データ書き込み
3. ファイルクローズ
この工程ですが、今回は排他処理は考慮していません。
今後必ず問題になると思いますが、その時に対応したいと思います。
コンパイル
1 |
$ gcc -o fileWrite fileWrite.c |
実行
引数を「data.txt」ファイルに書き込む(追記)仕様です。
1 |
$ ./fileWrite aaa bbb ccc ddd |
無事にdata.txtファイルに新しい行ができて文字列が追記されていれば成功です。
2バイト文字対応やら、文字エンコードやらも、排他処理と同じく今後に対応したいと思います。