1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| char* execute(char* command);
void read_cmd(char* buf,int buf_size, FILE* fifo) {
char c=0;
int it=0;
while((c=fgetc(fifo))==EOF) {
sleep(1);
}
do {
buf[it]=c;
it++;
} while(it<buf_size && (c=fgetc(fifo))!=EOF);
}
void send_data(char* data,int data_size, FILE* fifo) {
int it=0;
for(it=0;it<data_size;it++) {
fwrite(&buf[i],sizeof(char),1,fifo);
}
}
int main(argc, char* argv[]) {
FILE* cmd_fifo = fopen("./fcmd","r");
FILE* data_fifo = fopen("./fdata","w");
char cmd[100];
char data[100];
if(cmd_fifo==NULL || data_fifo==NULL) {
fprintf(stderr,"FIFO error\n");
exit(-1);
}
while(1) {
memset(cmd,0,100);
memset(data,0,100);
read_cmd(cmd,100,cmd_fifo);
data=execute(cmd);
send_data(data,100,data_fifo);
}
return 0;
} |