fgetslinux
Ⅰ 關於 linux FGETS
Hello, Software Weekly
好像沒問題,gcc調試過
Ⅱ linux下fgets和strlen函數的問題
fgets的buf含「\n」和「\0」
如果你掃的是字元串數組也就是沒有\0 可能就是11,最好看下你的定義,當時你是定義
char *name; 還是char *name[size]; 並且是怎麼讀取的,能看一下你的代碼嗎
Ⅲ linux fgets :
首先這個問題是段錯誤(core mped),你得知道為什麼會出現斷錯誤,一般情況都是因為越界問題,為什麼會有越界呢,你對內核所佔的內存執行了非法的寫操作,你會問我哪裡有啊?
struct servent *s這里 我覺得你就產生所謂的野指針,野指針就是不知道指向了內存的什麼地方的指針,我想s這個指針就是指向了非法內存部分,而你s=getservbyname(name,pro);這里又有了操作,我想應該是這里產生的段錯誤,其實要驗證你這個錯誤的地方出來哪裡,你可以gdb,然後run這樣就可以知道錯誤處在哪裡,
還有一個問題就是你說的gets這個「過時」了,不是你說的那樣,gets只不過是有危險,會產生越界,而fgets呢 則不會,他會自動在你最後給你補上\0, gets則不會,他會一直寫,有的時候會寫到非法內存,這個時候就會出現段錯誤了
希望對你有幫助,給最佳答案吧
Ⅳ 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 select函數fgets函數
通過返回值, 0表示超時, 大於零表示可讀。
http://www.cnblogs.com/moonvan/archive/2012/05/26/2518881.html