0

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 コンソールで同じコマンドを実行すると、データが変換されます。

私が何か間違ったことをしている、または何かを逃した場合、誰かが指摘できますか。私のあいまいな説明を気にしないでください。

4

0 に答える 0