шпаргалка

PIPE 2

[ Назад ]
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <fcntl.h>
#include <unistd.h>
^int main(int argc, char *argv[])
{
^int fd;
^int p[2];
^char buf[16];
^int k,i,stat;
^if (argc !=2)
{
^printf("Syntax error!
");
^exit(-1);
}
^pipe(p);
^if(fork() == 0)
{
/* proces consumator */
^close(p[1]);
^while(1)
{
^k=read(p[0],buf,16);
^if (k==0) break;
^for(i=0;i<k;i++) printf("[procent]02X ",buf[i]);
^printf("
");
}
^printf("exit consumator...
");
^exit(0);
}
/* proces producator */
^close(p[0]);
^fd=open(argv[1],O_RDONLY);
^while((k=read(fd,buf,16)) > 0)
{
^write(p[1],buf,k);
}
^printf("exit producator...
");
^exit(0);
}

КАТЕГОРИИ:

Network | английский | архитектура эвм | астрономия | аудит | биология | вычислительная математика | география | Гражданское право | демография | дискретная математика | законодательство | история | квантовая физика | компиляторы | КСЕ - Концепция современного естествознания | культурология | линейная алгебра | литература | математическая статистика | математический анализ | Международный стандарт финансовой отчетности МСФО | менеджмент | метрология | механика | немецкий | неорганическая химия | ОБЖ | общая физика | операционные системы | оптимизация в сапр | органическая химия | педагогика | политология | правоведение | прочие дисциплины | психология (методы) | радиоэлектроника | религия | русский | сертификация | сопромат | социология | теория вероятностей | управление в технических системах | физкультура | философия | фотография | французский | школьная математика | экология | экономика | экономика (словарь) | язык Assembler | язык Basic, VB | язык Pascal | язык Си, Си++ |