在向其写入数据后使用系统转换文件

时间:2013-01-09 09:42:51

标签: c file-io

我在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控制台中运行相同的命令时,数据将被转换。

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

0 个答案:

没有答案