
Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#define BUF_SIZE 0x100 //инициализация размера буфера
int main (int argc, char * argv[])
{
int pipedes[2];
pid_t pid;
pipe(pipedes);
pid = fork(); //создание дочернего процесса
if ( pid > 0 ) //выполнение в родительском процессе
{
char buf[BUF_SIZE];
int len;
close(pipedes[1]); //закрытие ненужного дескриптора
while ((len = read(pipedes[0], buf, BUF_SIZE)) > 0) //чтение из потока в буфер
write(1, buf, len); //запись содержимого буфера в станд. поток вывода
close(pipedes[0]); //закрытие потока
}
else //выполнение в дочернем процессе
{
close(pipedes[0]); //закрытие ненужного дескриптора
dup2(pipedes[1], 1); //перенаправление содержимого станд. потока вывода в поток
execve("/bin/netstat", NULL, NULL); //вызов процесса netstat вместо дочернего
}
return 0;
}
Соседние файлы в папке block2