红联Linux门户
Linux帮助

本人菜鸟一个,请问一个关于write系统调用的问题

发布时间:2010-07-14 00:05:21来源:红联作者:zjlssg
下面是LINUX程序设计上面的例子,由于C语言也不太懂,所以实在是看不懂,请求达人一句一句的解释一下红色部分的意思。
#include
#include

int main()
{
if((write(1,"Here is some data\n",18)) != 18)
write(2,"A write error has occurred on file descriptor 1\n",46);

exit(0)
}

在此谢谢大家了
文章评论

共有 8 条评论

  1. kanejeff 于 2010-07-16 15:32:36发表:

    顶一下。我现在还看不明白代码

  2. zjlssg 于 2010-07-14 13:40:31发表:

    嗯 懂一点啦 感谢各位大大的解答????{:2_93:}

  3. shenhao0129 于 2010-07-14 09:52:11发表:

    该说的LS的老大们都说了,就不重复了

  4. deepwhite 于 2010-07-14 08:43:51发表:

    代码中的1,2分别代表stdout和stderr,是两个标准的IO流。就write这个系统调用来讲,
    对他们的使用和对普通的文件描述符没有什么区别。

    可以参考:
    man stdin

    man 2 write

  5. onplans 于 2010-07-14 08:31:09发表:

    高人哈

  6. 王中云 于 2010-07-14 07:25:43发表:

    学习

  7. 奶茶dsk 于 2010-07-14 00:35:40发表:

    write的原型[code]#include
    ssize_t write(int fd,const void *buf,size_t count);[/code][code]write(1,"Here is some data\n",18)) != 18[/code]向标准输出写入18个字符,如果写入成功,返回18程序退出,反之就执行[code]write(2,"A write error has occurred on file descriptor 1\n",46);[/code]向标准出错写入错误提示,,默认情况下,标准输出和标准出错都是当前终端,

  8. chinawazi 于 2010-07-14 00:24:49发表:

    我也不懂,但是帮你顶一下!