Zurück zur SP2 Übersicht
dup2.c
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main(void) {
int fd_devnull = open("/dev/null", O_WRONLY);
int fd_outfile = open("foo.txt", O_WRONLY | O_CREAT);
printf("Diese Zeile wird auf stdout geschrieben\n");
printf("Um die Rechte händisch anzupassen (auf rw-r--r--): chmod 0644 foo.txt\n");
dup2(fd_devnull, STDOUT_FILENO);
printf("Das landet auf /dev/null und ist nicht sichtbar!\n");
dup2(fd_outfile, STDOUT_FILENO);
printf("Die Zeile wird in die Datei foo.txt geschrieben - ");
printf("und jetzt wird ein anderes Programm ausgeführt...\n");
execlp("./printer", "./printer", NULL);
perror("execlp");
exit(EXIT_FAILURE);
}