我想從FIFO讀取,但我不瞭解它的行爲。 這是寫的一面,爲write.c:從FIFO讀取C
for(int i = 1;i<argc;i++){
if(write(fifoFd,argv[i],strlen(argv[i])) <= 0)
perror("Error writing");
}
這是讀側,read.c:
char buf[1024];
while(1){
int b = read(fifoFd,buf,1024);
if(b<=0) break;
}
printf("%s\n",buf);
首先,我開始read.c ./read
然後我執行./write
如果我執行像這樣寫./write backup *.txt
有時我得到我的預期,即backupexample1.txtexample2.txt
。 但有時我只得到example1.txtexample2.txt
,我不理解這個,「備份」在哪裏?
請參見[MCVE] – KevinDTimm