■要求定義
– ファイルやフォルダをコピーする
– 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進数データのこと。