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 没有任何数据(0字节)。当我在 bash 控制台中运行相同的命令时,数据正在被转换。

如果我做错了什么或者我错过了什么,有人可以指出。请不要介意我模糊的描述。

4

0 回答 0