看板Programming
标 题Re: [问题] 请问一个关於read/write的问题
发信站中正筑梦园 (Fri Mar 23 00:11:18 2007)
转信站ptt!ctu-reader!ctu-peer!ctu-gate!news.nctu!news.ccu!reader.ccu!ccudrea
※ 引述《[email protected] (It's up to you)》之铭言:
> 这是一个socket的程式
> 我节录部份
> s是socket descriptor
> 我对於stderr以及stdin和stdout不是很了解
> 他们的path是?或者是什麽情况要用到他们
> 在receive 的部份
> length = read(s, buf, sizeof(buf));
> if (length > 0) {
> write(1, buf, length);
> .....略
> }
> 问题1
> 请问在此的1代表的是stdout吗???
> 将资料从buf write到1(stdout?)
> 同理 send部分
> while ( (length = read(0, buf, size)) > 0 ) {
> l = write(s, buf, l);
> total += l ;
> }
> 问题2
> 在此的0代表的是stdin吗???
> 那这样的话 我看不懂 从stdin read到buf 那stdin里面会是什麽东西
> 问题3
> fprintf(stderr, "socker create error ");
> 那这样 我要去哪看stderr log呢(换句话如果他写到stderr 我怎麽知道)
> 谢谢
stderr是个unbuffer的i/o 也就是说他只要一写到stderr,你就可以马上看到
通常error message都不会用printf(line buffer)或是其他有buffer的i/o
这通常会让你系统crash掉之後你还不知道问题出在哪
stderr算是比较标准的用法
--
* Origin: 中正筑梦园 (CcuDream.twbbs.org) ★ From: 220.129.172.70