Ниже приведен фрагмент кода, который объясняет системный вызов dup2. То, что я не понимаю, после дублирования обоих файловых дескрипторов, почему нам нужно закрыть старый дескриптор файла. Поскольку дескриптор «out» теперь закрыт, как сообщение, отправленное в stdout_fileno, также записывается в «out». Обратите внимание, что код не был написан мной.закрытие дескриптора файла, а затем его использование
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
int main(){
int out;
out=open("out",O_WRONLY | O_TRUNC | O_CREAT,S_IRUSR|S_IRGRP | S_IWGRP | S_IWUSR);
dup2(out,STDOUT_FILENO);
close(out);
printf("now this should be written to a file called out \n");
return 0;
}
спасибо. это объясняет это – DesirePRG