Код программы
Код
int main( )
{
int fd[2], /*nread,nread2,*/ pid;
char buf2[SIZE];
if(pipe(fd) == -1)
{perror("pipe failed"); exit(1);}
if((pid = fork()) < 0)
{perror("fork failed"); exit(2);}
if(pid == 0)
{ /* процесс потомок */
close(fd[1]);
ofstream ofile ("output.txt");
cout <<"что-то ворочается";
int len;
while ((len = read(fd[0], buf2, SIZE)) != 0)
ofile.write(buf2, len);
}
else
{ /* процесс родитель */
close(fd[0]);
ifstream ifile ("input.txt");
stringstream stream;
stream<<ifile.rdbuf();
string contents(stream.str());
const char * mystr = contents.c_str();
write(fd[1], (void *) mystr, strlen(mystr) + 0);
close(fd[1]);
}
}
Библиотеки:
Код
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <time.h>
#include <string>
#include <iostream>
#include <sstream>
#include <fstream>
using namespace std;
#define SIZE 1024