2015-05-04 43 views
0

我正在学习计算机科学,我应该为一个项目创建一个ac shell。在这部分项目中,我必须编写这些类型的命令的代码:“sort < in.txt> out.txt“。我的问题是,在使用execlp来排序我的“in.txt”后,我无法将结果写入我创建的“out.txt”中。我的代码是这样的:使用fopen在c语言中编写一个txt文件

outfile = fopen("out.txt", "w"); 
dup2((int) outfile , 0); 
dup2((int) outfile , 1); 
close (outfile); 

有谁知道我必须解决什么问题?谢谢。

+0

你为什么不检查'fopen()'的成功? –

回答

0

看来你想要将文件描述符0和1从stdin和stdout更改为您的特定文件。如果是这样,请使用标准freopen

0

首先您应该使用开放而不是fopen。演员outfileint是非常错误的。 秒你必须打开in.txt。这个文件的文件描述符应该用于您的第一个dup2