■要求定義
– ファイルやフォルダをコピーする
– cp (移動元ファイル名/フォルダ名) (移動先ファイル名/フォルダ名)
#include <stdio.h> #include <stdlib.h> //汎用ライブラリ #include <string.h> int main(){ FILE *fpSrc, *fpDes, *fp; char ss[256], ch[50]; fpSrc = fopen("test.txt", "r"); fpDes = fopen("copy.txt", "w"); while(fgets(&ss, 256, fpSrc) != NULL){ printf("%s", ss); fwrite(ss, 1, 8, fpDes); } fclose(fpSrc); fclose(fpDes); printf("コピーしました。\n"); return 0; }
$ ./dev
asdf
1234コピーしました。
■考察
あれ、コピー先のデータはバイナリデータで入ってるな。
調べてみると、fwriteはバイナリデータの書き込みとのこと。
fwriteではなく、fputs()に変更します。
int main(){ FILE *fpSrc, *fpDes; char ss[256]; fpSrc = fopen("test.txt", "r"); fpDes = fopen("copy.txt", "w"); while(fgets(&ss, 256, fpSrc) != NULL){ printf("%s", ss); fputs(ss, fpDes); } fclose(fpSrc); fclose(fpDes); printf("コピーしました。\n"); return 0; }
コピーできました。
バイナリとは2進数データのこと。