Что происходит быстрее в linux: pipe или fifo? Теоретическая труба быстрее, но как я могу проверить это с помощью программы C? Я попытался отправить сообщение между 2-мя пробами, но время от отправки до получающего сообщения все равно 0 безрассудно по длине сообщения.Что происходит быстрее, pipe | fifo
часть кода:
struct timeval start,end;
char mesaj[100000]="";
for(i=0;i<99999;i++)
strcat(mesaj,"d");
gettimeofday(&start,NULL);
if(fork()==0)
{
write(fd,mesaj,strlen(mesaj));
exit(0);
}
read(fd,mesaj,strlen(mesaj));
gettimeofday(&end,NULL);
long time=(end.tv_usec-start.tv_usec)/1000 + (end.tv_sce-start.tv_sec)*1000;
printf("Fifo time &lu\n",time);
Постарайтесь выслать 1,000,000 и узнайте, какой быстрее –
Ваши теги сравнивают яблоки с апельсинами. Unix 'pipe' - практическая вещь, а' fifo' - это концепция. Что вы точно сравниваете? – nvoigt
В этой части кода я хочу получить время, используемое с помощью fifo, и у меня есть способ получить время с помощью pipe, это то же самое, но fd is int fd [2], и я начал работать с каналом перед fork. – user3052078