Προς το περιεχόμενο

c---mkfifo


spilia

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα

εχω γραψει τον κωδικα που θελω ο αριθμος που παιρνει το παιδι να μεταφερεται και να εκτυπωνεται στον πατερα.δεν θελω να μου πειτε την λυση αλλα που κανω λαθος ωστε να το προσπαθησω μονος.

>#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
int i,fd,x,y,ret,status,n,t;
char namefifo[100],buffer[100];


//se periptosi pou dothoun pano apo ena orisma.
if(argc!=2){
printf("dose akribos ena orisma");
exit(0);}

unlink("FIFO");

if (mkfifo("FIFO", 0755) == -1){
	fprintf(stderr," Coudn't create fifo1.\n");
    		exit(2);
 	}


  ret=fork();	
if (ret==-1){	
    perror("fork");
    exit(11);
}


//paidi
if (ret==0){

printf("dose enan arithmo x\n");
scanf("%d",&x);
sprintf(buffer,"%d",x);
printf("%s",buffer);
if ((fd = open("FIFO", O_RDWR | O_NONBLOCK)) == -1){
fprintf(stderr, "Sender: fifo open failed.\n");
exit(3);
}

if ((n = write(fd, buffer, 100)) == -1){
fprintf(stderr, "Sender: Write to fifo failed.\n");
exit(4);
}
}

else{
//pateras
	//sleep(5);	
	//printf("dose enan arithmo y\n");
	//scanf("%d",&y);

if ((fd = open("FIFO", O_RDWR)) == -1){
fprintf(stderr, "Receiver: fifo open failed.\n");
exit(1);
}

do{
if (t=read(fd, buffer, 100) == -1){
fprintf(stderr,"Receiver: fifo reading failed.\n");
exit(2);}

printf("Received message: %s\n", buffer);

}while(strcmp(buffer,NULL)!=0);

exit(0);
}
}

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...