Witam,
Mam do napisania w C dwa programiki działające w terminalu. Ogółem idea zadania jest taka, że wykorzystując "potoki" mają działać tak, że w pierwszej konsoli wpisuję jakiś tekst, powiedzmy "abcdabcd" a w drugiej konsoli ma się ten tekst wyświetlić. Niestety kompletnie nie rozumiem idei potoków a programy, które napisałem z kolegami nie działają (chyba)...
Wyglądają one tak:
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, char* argv[]){
int mysize=50;
char*buf1[50];
char*buf2[50];
char* myfifo="/tmp/myfilo";
mkfifo(myfifo,0666);
int fd=open(myfifo,O_RDONLY);
read(fd, buf1, mysize);
close(fd);
fd=open(myfifo,O_WRONLY);
write(fd, buf2, mysize);
close (fd);
return 0;
}
-------------------------------DRUGI PROGRAM --------------------------------------
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(){
int msgSize=10;
char* myFifo = "/tmp/myfilo";
char* inbuf;
mkfifo(myFifo, 0666);
while(1){
int fd=open(myFifo, O_WRONLY);
gets(inbuf);
printf("%s",inbuf);
write(fd, inbuf, msgSize);
close(fd);
fd=open(myFifo, O_RDONLY);
read(fd,inbuf,msgSize);
close(fd);
}
return 0;
}
Podobno brakuje jakiejś zmiennej, do której ten tekst ma się władowywać i z niej ma odczytywać drugi program ale jeśli chodzi o C i linuxa to jestem kompletnie zielony i nie wiem już za co mam się zabrać...
Potrzebowałbym pomocy co mam jeszcze poczytać, najlepiej z jakimś prostym przykładem. No i czy w tych programach jest wszystko dobrze napisane ?