我正在讀取父文件中的輸入文件,並根據文件中的內容將其傳遞給兩個子進程之一。現在將變量參數傳遞給子進程UNIX中c
char a[20],b[20],c[20];
pFile = fopen ("instruction.dat","r");
while(!feof(pFile))
{
fscanf(pFile,"%s %s %s",a,b,c);
switch(a[0])
{
case 'f': write(fds1[1],b,sizeof(b));
write(fds1[1],c,sizeof(c));
write(1,"\nAFRCF",6);
break;
case 'a': write(fds2[1],b,sizeof(b));
write(fds2[1],c,sizeof(c));
write(1,"\nAFRCA",6);
break;
default: write(1,err,sizeof(err));
//printf("\n Instruction.dat read error");
}
}
,我面臨的問題是,的sizeof(A)操作者將返回所分配的存儲器的尺寸的陣列,從而所述子進程接收與從輸入文件中的實際內容一起一些垃圾。我無法事先預測數組的大小,所以我不能使用動態分配(malloc或realloc)來給出數組的確切大小。
將字符串的大小(在讀取輸入文件後)傳遞給write()的方法是什麼?
_Passing確切字符串長度爲'write'_(其中一百萬人)似乎對這個問題更合適的名稱,只是說:) –