当前位置:  技术问答>linux和unix

关于文件描述符的疑问

    来源: 互联网  发布时间:2016-05-28

    本文导语:  对于套接字来说,当缓冲区中数据多于低潮限度时,套接字为可读,这时使用select函数能够返回正值。 但是对于普通文件描述符来说,它什么时候被标记成可读,或是可写的呢? 我在程序里面用下面的代码,发现fd...

对于套接字来说,当缓冲区中数据多于低潮限度时,套接字为可读,这时使用select函数能够返回正值。
但是对于普通文件描述符来说,它什么时候被标记成可读,或是可写的呢?

我在程序里面用下面的代码,发现fd总是可读的,即FD_ISSET(fd, &readset)总为1,而不管文件a是否为空。不知道是为啥。

    int fd = open("a", O_RDONLY);
    fd_set readset;
    FD_ZERO(&readset);
    FD_SET(fd, &readset);
    int nfds = select(fd + 1, &readset, NULL, NULL, NULL);
    if (nfds == -1)
        return -1;
    if (FD_ISSET(fd, &readset))
        fprintf(stdout, "%d is setn", fd);


|
对于普通文件a来说,它始终都是可读的,当然select不会阻塞在它上面的。

|
一般select用于管道、socket等异步操作的设备上,对于文件是可以使用,但一般都不这么用。基本上打开文件后,描述符就已经准备好了,所以,select不会阻塞。

|
select函数主要用于终端I/O和网络I/O,但他对其他描述符同样是起作用的。

|
汗,第一次看到把select用到文件描述符。。。
只读方式打开文件,文件偏移量只要没有到文件尾,就一直是可读的。

|

可以!但是必須你是文件的屬主或者你具有root權限,然後你去設置這個文件對其它的用戶或者組是否可讀或者

可寫?

可以看一下(第二版),那裏面有詳細的描述和範例

    
 
 

您可能感兴趣的文章:

  • 日志文件的疑问,请教
  • Linux文件系统结构的疑问
  • 关于linux的文件系统的疑问
  • 文件上传的疑问?
  • 文件压缩的一点疑问。。
  • 有关 在 JSWDK 服务器 下使用 .shtml 文件的疑问??
  • 关于用rename函数移动文件到另一目录的疑问.
  • YUV格式文件 疑问
  • Linux烧写文件系统的疑问
  • 文件inode的疑问。。
  • 编译好的class文件放在哪儿?——初学者的疑问!
  • 疑问:为什么每个 source 文件中要有一个 public 类,并且只有一个
  • linux下的一些疑问,关于文件和设备
  • 一个脚本文件的疑问
  • alsa project网站上的latency.c ,关于这个文件名字的疑问?
  • 疑问:开发板不能mount主机的文件?
  • Jar文件的疑问?
  • linux kernel0.11 版本文件系统的一个小疑问
  • 关于linux中grub.conf文件的疑问
  • 菜鸟对zip压缩文件的一点儿疑问,请高手指教!
  • 文件描述符集fd_set * readfds;书上这样描述数组元素的每一位对应一个文件描述符,第一个元素代表文件描述符0到31,数组第二个元素代表文
  • 每个线程都进行申请文件描述符的操作的话,会不会发生文件描述符申请冲突?
  • 关于文件描述符问题
  • 监视文件和目录文件描述符的问题
  • 文件描述符,文件句柄的区别?
  • 如何让文件描述符共享一个文件表项
  • fork一个子进程后在打开一个文件,如何在子进程中使用这个打开的文件描述符号
  • UNIX的文件描述符传递问题
  • 文件描述的回收问题,谢谢
  • vi 中编辑两个文件,怎样从其中一个文件拷一段内容到另一个文件中。(同时打开两个文件) iis7站长之家
  • 请问FILE结构体和文件描述符有什么联系?谢谢
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 eof():如果处于文件结尾处则返回true
  • Shell脚本如何递归现实一个文件夹中的文件(文件夹中含有文件夹)
  • WinDows8最新版文件夹加密
  • 求命令:什么命令可以把文件夹下所有的文件按修改时间先后排出来,包括子文件夹里的文件。
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • [提问]Linux下如何把多个.a文件编译一个.so文件,或者把多个.so文件编译成一个.so文件
  • python异常信息堆栈输出到日志文件
  • 请问:proc中的头文件中能包含头文件吗?(感觉如果头文件中包含头文件的话,在链接时就会有错误啊)
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊
  • 在MyEclipse中设开启xml文件自动提示和自动完成功能
  • vi 中编辑两个文件,怎样从其中一个文件拷一段内容到另一个文件中。(同时打开两个文件)
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 怎么统计一个文件夹下有多少个文件(不包括文件夹)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • MyEclipse如何查看和设置文件编码格式相关操作
  • linux 下的 .a 文件 .o 文件 是什么文件?各有什么作用?
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • 如何用socket一次传输多个文件,如何确定文件一个文件结束
  • 设置sharepoint 2010文档库中的 pdf文件在浏览器中访问的打开方式
  • 如何删除某个目录下除了指定文件夹之外的所有文件和文件夹


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3