Ⅰ 关于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; /