Ⅰ 關於linux select函數fgets函數
一般對於通過 fopen 操作的文件,我們沒必要用 select, 首先你要把 FILE * 轉成對應的文件描述符,其次對於標准文件,一般情況下讀和寫是 non-block 的,select主要是用來對那些會block的設備用的。當然你硬要這么用,也沒問題,但是 select 對於這種文件總是會返回可讀的,和緩沖區里是否有內容無關(緩沖區的實現是在用戶空間的,顯然內核不知道其狀態)。因為即使整個文件都被讀入緩沖區,由於此時描述符處於 EOF 狀態, select 仍然會返回可讀。
這里實在是有太多細節。 總之,不建議濫用select,對於標准文件或者單個設備的讀寫,完全沒意義。
Ⅱ Linux C語言怎麼讀取文件指定行內容
1、用fgets函數可以讀取文件中某行的數據,某列數據就必須一個一個讀入每行的第幾個字元,再存入到一個字元串當中。
2、常式:
#include<stdio.h>
#include<string.h>
voidmain()
{
chara[100],b[100],c[100];
inti=3,j=4,k=0;//第三行,第四列
FILE*fp=fopen("data.txt","r");
while(fgets(c,100,fp)){//讀入每行數據
i--;
if(i==0)strcpy(a,c);//讀到第三行數據
b[k++]=c[j-1];//把每行的那列字元拷到b中
}
b[k]=0;
printf("第%d行數據:%s ",i,a);
printf("第%d列數據:%s ",j,b);
fclose(fp);
}
Ⅲ Linux系統下 C語言讀取文件內容,並將指定內容或某個特殊字元開始的內容,存放到字元串
1、用fgets函數可以讀取文件中某行的數據,某列數據就必須一個一個讀入每行的版第幾個字元,再存入到一權個字元串當中。2、常式: #include#includevoid main(){ char a[100],b[100],c[100]; int i=3,j=4,k=0; /