Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
int main (int argc, char * argv[])
{
int pipedes[2];
pid_t pid;
pipe(pipedes);
pid = fork(); //создание дочернего процесса
if ( pid > 0 ) //выполнение в процессере-родителе
{
char *str = "String passed via pipe\n";
close(pipedes[0]); //закрытие ненужного дескриптора
write(pipedes[1], (void *) str, strlen(str) + 1); //запись в поток содержимого str
close(pipedes[1]); //закрытие потока
}
else //выполнение в дочернем процессе
{
char buf[1024];
int len;
close(pipedes[1]); //закрытие ненужного дескриптора
while ((len = read(pipedes[0], buf, 1024)) != 0) //чтение из потока ввода в буфер
write(2, buf, len); //запись в станд. поток ошибок содержимого буфера
close(pipedes[0]); //закрытие потока ввода
}
return 0;
}
Соседние файлы в папке block2