我正在学习计算机科学,我应该为项目创建一个c shell。在项目的这一部分,我必须为这些类型的命令编写代码:" sort< in.txt> out.txt&#34 ;.我的问题是在使用execlp以便对我的" in.txt"进行排序后,我无法将结果写入" out.txt"我创造的。我的代码就像:
outfile = fopen("out.txt", "w");
dup2((int) outfile , 0);
dup2((int) outfile , 1);
close (outfile);
有谁知道我要解决的问题?谢谢。
答案 0 :(得分:0)
似乎您想要将文件描述符0和1从stdin和stdout更改为您的特定文件。如果是,请使用标准freopen。
答案 1 :(得分:0)
首先,您应该使用 open 而不是 fopen 。将 outfile 转换为 int 是非常错误的。 其次,您必须打开 in.txt 。您应该为第一个 dup2 使用此文件的文件描述符。