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

<Unix网络编程>上大概73页的Readn函数问题

    来源: 互联网  发布时间:2016-04-26

    本文导语:  上大概73页的Readn函数问题 请问这个函数中使用read(...),其中有一句 n = read(...); if(n == 0)     break; 我想问一下,read如果没有数据不是会阻塞吗?怎么会返回0呢?如果这个作者的readn函数被设计成非阻塞的,那...

上大概73页的Readn函数问题

请问这个函数中使用read(...),其中有一句

n = read(...);

if(n == 0)
    break;


我想问一下,read如果没有数据不是会阻塞吗?怎么会返回0呢?如果这个作者的readn函数被设计成非阻塞的,那他后面的代码都用到了这个函数,都不是按阻塞用得啊

|
文件结束也会返回0
并且 read 可以 是非阻塞 STDIN_FILENO

下面是例

#include "head.h"

char            buf[500000];

int main(int argc, char** argv)
{
        int                     nwrite, ntowrite;
        char                    *ptr = NULL;

        ntowrite = read(STDIN_FILENO, buf, sizeof(buf));
        fprintf(stderr, "read %d bytesn", ntowrite);

        set_fl(STDOUT_FILENO, O_NONBLOCK);
        ptr = buf;
        while(ntowrite > 0){
                errno = 0;
                nwrite = write(STDOUT_FILENO, ptr, ntowrite);
                fprintf(stderr, "nwrite = %d bytes, errno = %dn", nwrite, errno);

                if(nwrite > 0){
                        ntowrite -= nwrite;
                        ptr += nwrite;
                }
        }

        clr_fl(STDOUT_FILENO, O_NONBLOCK);

        exit(0);
}

static int set_fl(int fd, int flags)
{
        int             val;

        val = fcntl(fd, F_GETFL, 0);
        if(val 

    
 
 

您可能感兴趣的文章:

  • 读过 Unix网络编程 或者 熟知Unix网络编程的 的进来看一下
  • 刚刚接触Unix系统和Unix编程。急需Unix下多线程程序设计和网络Socket程序设计方面的资料。
  • UNIX网络编程卷1
  • 请问unix网络编程和linux网络有什么区别
  • 谁知道哪有《Unix网络编程》w.richard stevens 著的下载?
  • 求关于UNIX网络编程的好书 最好带项目的那种
  • Unix/Linux网络编程怎样来做一个项目?
  • 请推荐几本Linux/Unix网络编程的好书吧
  • unix网络编程资料帮忙 大哥大姐进来瞧瞧啊
  • 学UNIX网络编程,看哪些书好?大家各抒已见~
  • 《UNIX网络编程》这本书适合linux下的网络编程吗?
  • 看完了<unix网络编程>后
  • Unix/Linux网络编程可以用来做什么?一般从事什么样的职业?
  • 求助:linux/unix网络编程
  • 运行<<UNIX网络编程卷一>>中程序的错误?
  • 哪里有steven的UNIX网络编程源码?
  • 谁知道哪里有unix网络编程第一卷和第二卷电子版的下载?
  • 哪有unix下的c网络编程,如地址有效,我一次性给50分
  • 哪位好人能告诉我哪儿有《UNIX网络编程2版1卷》下载?????
  • unix网络编程中err_quit()是什么函数?
  • unix/Linux下c/c++ pthread库读写锁函数介绍
  • 谁有介绍UNIX下面函数的书啊,类似UNIX编程参考手册的东西
  • php将unix时间戳转换成字符串时间函数(date)
  • 哪位大侠有unix/linux的函数和函数所在的文件
  • UNIX C函数中是否有类似“ls”的函数调用?
  • Unix系统函数和C语言标准函数库有重叠的部分吗?
  • 初学Unix,问:标准级函数,如fopen,fclose;系统级函数open,close,两者什么关系?(在一篇讲文件操作的文章中看到的)
  • c语言也能重载函数? 怎么解释。unix编程的open函数。
  • UNIX中的函数库?高分相送!
  • SOS ,在UNIX下编译C++程序时出现链接错误:未下义的符号,但函数库里有这些函数,不知道为什么?
  • 急:unix的shell脚本中,定义了一个函数getDate(),在后面的执行命令参数用要使用这个函数的返回值,应该怎么写?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高级UNIX编程和UNIX环境高级编程是不是一本书
  • 想看linux内核源代码,另外手头上有一本《unix环境高级编程》,需要先把《unix环境高级编程》看完之后再看内核吗?
  • 我下载了UNIX环境高级编程的源码,可是打开时有错误,怎么才可以打开?还有谁有《UNIX环境高级编程(英文版)》的chm格式的ebook?
  • 想学linux下程序开发,不知道买哪本书好《UNIX环境高级编程》(中文第一版)还是《UNIX环境高级编程》(英文第二版)
  • unix编程与linux编程有什么区别?
  • [学习UNIX编程]初学UNIX编程,遇到一个小小的问题,烦劳大虾帮忙解惑,谢谢!
  • 看Unix环境高级编程,提到了V和bsd,有很多不同,但是没有提到Linux,请问linux跟BSD或者unix V 编程细节哪些不同的,特别是线程,进程,和socke
  • 都说《UNIX环境高级编程》好,对于学linux编程好不好?《Linux下的c编程》《嵌入式系统C编程》那个更适合初学者?各是那个出版社的?(
  • 我初学 Unix 编程,在看《Unix环境高级编程》时有一个问题请指教。
  • 我学&用Linux编程,手里有《UNIX环境高级编程》,看它行吗?
  • UNIX编程艺术,了解unix文化强烈推荐这本书
  • UP有分,推荐几本书给我吧,兄弟们,UNIX入门与编程的与编程的,
  • 读过 Unix网络编程 或者 熟知Unix网络编程的 的进来看一下 iis7站长之家
  • 入门问题,我想向UNIX编程方向发展,单目前不会UNIX,我该如何做
  • 请问:如果懂unix编程,那么会懂linux编程吗?一般来说:它们有什么关系呢?
  • 都说《UNIX环境高级编程》好,对于学linux编程好不好?是那个出版社的,是中文版吗?
  • 学习UNIX编程应该从那里入手?
  • 请教:我想在unix编程领域发展,我应该在哪些方面努力?
  • 请问linux/unix下编程与windows下编程有什么不同呢??
  • 因进修,需要学习《Unix 环境高级编程》一书,完全没接触过Unix/Linux,请推荐一个学习环境。
  • java命名空间java.util.regex类pattern的类成员方法: unix_lines定义及介绍
  • 关于UNIX的历史 : 1973年,K.Thompson和D.M.ritchie,用C改写UNIX。那么,在此之前,UNIX是用什么写的?
  • unix/Linux下c++ boost thread库读写锁介绍
  • 没有unix系统我如何学习unix
  • php将标准字符串格式时间转换成unix时间戳_strtotime
  • unix盘哪里有下载的??哪里有比较好的unix论坛??万分感谢!!!!!!!!!
  • 急!装完unix5.06,再装win2000。重启后不能进unix.
  • UNIX特急!!!digital unix问题,请专家快来!!!
  • UNIX支持中文否,请推荐UNIX好书
  • SCO UNIX 5.0用软盘启动之后无法启动UNIX
  • 散分!!unix 用户调查!!!你使用哪款unix


  • 站内导航:


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

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

    浙ICP备11055608号-3