erstmal den code,
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
int main() {
/*
* nun lenken wir die Standardausgabe in die Datei stdout.txt um:
*
* erst schliessen wir den Filedeskriptor 1; dann ist dieser der
* kleinste freie; nun oeffnen wir die Datei stdout.txt zum schreiben
* (wobei sie evtl. angelegt bzw. auf Laenge 0 verkuerzt wird);
* beim Oeffnen wird im Erfolgsfall der kleinste freie FD geliefert
* und das ist hier 1, also die Standardausgabe
*
* => so haben wir als stdout in die Datei stdout.txt umgelenkt
*
* Bem.: Gleiche Wirkung wie wenn man das Programm umlenkung_stdout1.c
* auf der Kommandozeile mit "> stdout.txt" aufgerufen haette!
*/
close(1);
if (open("stdout.txt", O_WRONLY | O_CREAT | O_TRUNC, 0666) < 0)
perror("stdout.txt"), exit(1);
/* Ausgabe auf die Standardausgabe und somit in die Datei stdout.txt*/
puts("Hallo Welt!");
printf("Integer: %d\n", 4711); /* usw.... */
return 0;
}
Code: Alles auswählen
puts("hallo");
gruss penthesilea