C プログラムでファイルを ascii から ebcdic に変換する際に問題に直面しています。私のプログラムが行うことは
1. open a file for writing and write required data
2. close the file pointer `fclose(fp)`
3. using system function convert
cmd="dd infile=oldfile outfile=newfile conv=ebcdic
現在、プログラムの実行後、変換されたファイルにはデータがありません。
#define CMD_FORMAT "dd if=%s of=%s conv=ebcdic"
int ascii2ebcdic(char * in, char *out)
{
char cmd[1000];
sprintf(cmd,CMD_FORMAT,in,out);
if(system(cmd) ==0 )
return 0;
else
return 1;
}
int main()
{
FILE *fp;
fp=fopen("ascii","w+");
fprintf(fp,"ASCII data123\n");
fclose(fp);
ascii2ebcdic("ascii","ebcdic");
return 0;
}
現在、ファイル ebcdic にはデータ (0bytes) がありません。bash コンソールで同じコマンドを実行すると、データが変換されます。
私が何か間違ったことをしている、または何かを逃した場合、誰かが指摘できますか。私のあいまいな説明を気にしないでください。