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