Int Unix c, что означает слово «execl»? [дубликат] ⇐ Linux
Int Unix c, что означает слово «execl»? [дубликат]
Я учусь копировать файл APUE на рисунке 15.6 в программу пейджера. Результат бега не соответствует моим ожиданиям。
#include "apue.h" #include #define DEF_PAGER "/bin/more" /* программа пейджера по умолчанию */ интервал main(int argc, char *argv[]) { интервал н; интервал ФД[2]; пид_т пид; символ *pager, *argv0; строка символов [MAXLINE]; ФАЙЛ *fp; если (арг!= 2) err_quit("использование: a.out "); if ((fp = fopen(argv[1], "r")) == NULL) err_sys("невозможно открыть %s", argv[1]); если (труба(fd) < 0) err_sys("ошибка канала"); если ((pid = fork()) < 0) { err_sys("ошибка вилки"); } else if (pid > 0) { /* родительский элемент */ закрыть (ФД [0]); /* закрыть конец чтения */ /* родительский элемент копирует argv[1] в канал */ while (fgets(line, MAXLINE, fp) != NULL) { п = стрлен (строка); if (write(fd[1], line, n) != n) err_sys("ошибка записи в канал"); } если (ferror(fp)) err_sys("fgets error"); закрыть(ФД[1]); /* закрываем конец канала записи для читателя */ если (waitpid(pid, NULL, 0)
Я учусь копировать файл APUE на рисунке 15.6 в программу пейджера. Результат бега не соответствует моим ожиданиям。
#include "apue.h" #include #define DEF_PAGER "/bin/more" /* программа пейджера по умолчанию */ интервал main(int argc, char *argv[]) { интервал н; интервал ФД[2]; пид_т пид; символ *pager, *argv0; строка символов [MAXLINE]; ФАЙЛ *fp; если (арг!= 2) err_quit("использование: a.out "); if ((fp = fopen(argv[1], "r")) == NULL) err_sys("невозможно открыть %s", argv[1]); если (труба(fd) < 0) err_sys("ошибка канала"); если ((pid = fork()) < 0) { err_sys("ошибка вилки"); } else if (pid > 0) { /* родительский элемент */ закрыть (ФД [0]); /* закрыть конец чтения */ /* родительский элемент копирует argv[1] в канал */ while (fgets(line, MAXLINE, fp) != NULL) { п = стрлен (строка); if (write(fd[1], line, n) != n) err_sys("ошибка записи в канал"); } если (ferror(fp)) err_sys("fgets error"); закрыть(ФД[1]); /* закрываем конец канала записи для читателя */ если (waitpid(pid, NULL, 0)
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как преобразовать список[int, int, int] в кортеж[int, int, int], а не в кортеж[int, ...]
Anonymous » » в форуме Python - 0 Ответы
- 290 Просмотры
-
Последнее сообщение Anonymous
-