Основы операционных систем. Практикум


Example.5.2


/* Программа 05-2.с, иллюстрирующая работу с pip'ом в рамках одного

процесса */

#include

#include

#include

int main(){

int fd[2];

size_t size;

char string[] = "Hello, world!";

char resstring[14];

/* Попытаемся создать pipe */

if(pipe(fd) < 0){

/* Если создать pipe не удалось, печатаем об этом сообщение

и прекращаем работу */

printf("Can\'t create pipe\n");

exit(-1);

}

/* Пробуем записать в pipe 14 байт из нашего массива, т.е. всю

строку "Hello, world!" вместе с признаком конца строки */

size = write(fd[1], string, 14);

if(size != 14){

/* Если записалось меньшее количество байт, сообщаем об

ошибке */

printf("Can\'t write all string\n");

exit(-1);

}

/* Пробуем прочитать из pip'а 14 байт в другой массив, т.е. всю

записанную строку */

size = read(fd[0], resstring, 14);

if(size < 0){

/* Если прочитать не смогли, сообщаем об ошибке */

printf("Can\'t read string\n");

exit(-1);

}

/* Печатаем прочитанную строку */

printf("%s\n",resstring);

/* Закрываем входной поток*/

if(close(fd[0]) < 0){

printf("Can\'t close input stream\n");

}

/* Закрываем выходной поток*/

if(close(fd[1]) < 0){

printf("Can\'t close output stream\n");

}

return 0;

}




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