Программирование в стандарте POSIX


Пример 5.24


#include

#include

#include

#include

#include

#define LOGFILE "my_logfile"

int main (void) {

int fd;

int flags;

assert ((fd = open (LOGFILE, O_WRONLY | O_CREAT

| O_APPEND, S_IRWXU)) > 2);

printf ("До перенаправления стандартного вывода

в файл " LOGFILE "\n");

close (1);

assert (fcntl (fd, F_DUPFD, 1) == 1);

close (fd);

printf ("После перенаправления стандартного

вывода в файл " LOGFILE "\n");

/* Добавим флаг обеспечения целостности файла */

/* при записи */

assert ((flags = fcntl (1, F_GETFL, 0)) != -1);

assert (fcntl (1, F_SETFL, flags | O_SYNC) != -1);

fprintf (stderr, "До перенаправления стандартного

протокола на стандартный вывод\n");

close (2);

assert (fcntl (1, F_DUPFD, 2) == 2);

fprintf (stderr, "После перенаправления

стандартного протокола на стандартный вывод\n");

close (1);

close (2);

return (0);

}




Начало  Назад  Вперед



Книжный магазин