麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > C > 正文

解析c中stdout與stderr容易忽視的一些細(xì)節(jié)

2020-01-26 16:06:49
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
先看下面一個(gè)例子
a.c :
復(fù)制代碼 代碼如下:

int main(int argc, char *argv[])
{
 fprintf(stdout, "normal/n");
 fprintf(stderr, "bad/n");
 return 0;
}

$ ./a
normal
bad
$ ./a > tmp 2>&1
$ cat tmp
bad
tmp
我們看到, 重定向到一個(gè)文件后, bad 到了 normal 的前面.
原因如下:
復(fù)制代碼 代碼如下:

"The stream stderr is unbuffered. The stream stdout is line-buffered when it points to a
     terminal. Partial lines will not appear until fflush(3) or exit(3) is called, or a newline
     is printed. This can produce unexpected results, especially with debugging output.  The
     buffering mode of the standard streams (or any other stream) can be changed using the
     setbuf(3) or setvbuf(3) call. "

因此, 可以使用如下的代碼:
復(fù)制代碼 代碼如下:

int main(int argc, char *argv[])
{
 fprintf(stdout, " normal/n");
 fflush(stdout);
 fprintf(stderr, " bad/n");
 return 0;
}

這樣重定向到一個(gè)文件后就正常了. 但是這種方法只適用于少量的輸出, 全局的設(shè)置方法還需要用 setbuf() 或 setvbuf(), 或者采用下面的系統(tǒng)調(diào)用:
復(fù)制代碼 代碼如下:

int main(int argc, char *argv[])
{
 write(1, "normal/n", strlen("normal/n"));
 write(2, "bad/n", strlen("bad/n"));
 return 0;
}

但是盡量不要同時(shí)使用 文件流 和 文件描述符,
復(fù)制代碼 代碼如下:

"Note that mixing use of FILEs and raw file descriptors can produce unexpected results and
     should generally be avoided.  A general rule is that file
     descriptors are handled in the kernel, while stdio is just a library. This means for exam-
     ple, that after an exec(), the child inherits all open file descriptors, but all old
     streams have become inaccessible."

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 羞羞的视频在线观看 | 国产一级在线观看视频 | 国产在线精品一区二区不卡 | 欧美在线成人影院 | 成人三级视频在线观看 | 国产三级在线观看a | 欧美一区二区黄色 | 电影av在线 | 国产三级国产精品国产普男人 | 亚洲最大久久 | av成人在线免费观看 | 国产精品久久久久久久久粉嫩 | 成人一级免费视频 | 成人男女啪啪免费观看网站四虎 | 中文字幕极速在线观看 | 成人一级视频在线观看 | 鲁丝片一区二区三区免费入口 | 国产一区二区三区视频在线观看 | 久久精品视频2 | 爱操影院| 亚洲国产网址 | 欧美aⅴ在线观看 | 美女视频黄视大全视频免费网址 | 久久99精品久久久久久236 | 黄色网址免费入口 | 日本在线播放一区二区 | 亚洲成人激情在线 | 中文字幕视频在线播放 | 午夜精品成人一区二区 | 国产一区二区成人在线 | 日韩在线播放中文字幕 | 精品一区二区免费视频视频 | 91小视频在线观看免费版高清 | 久章草影院 | 一区二区三区欧美精品 | 91成人影库 | 久久国产精品影视 | sesee99| 亚洲精中文字幕二区三区 | 久久艳片 | 精品国内视频 |