2015-05-04 9 views
0

Я изучаю информатику, и я должен создать оболочку ac для проекта. В этой части проекта мне нужно написать код для этих типов команд: «sort < in.txt> out.txt ". Моя проблема в том, что после использования execlp, чтобы сортировать мой «in.txt», я не могу записать результат в «out.txt», который я создаю. Мой код:Использование fopen для записи в txt на языке c

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. Листинг outfile до int очень не прав. Во-вторых, вы должны открыть in.txt. Дескриптор файла для этого файла, который вы должны использовать для своего первого dup2.