linux c之STDIN_FILENO的作用及与stdin的区别
1.STDIN_FILENO的作用
STDIN_FILENO屬于系統(tǒng)API接口庫(kù),其聲明為 int 型,是一個(gè)打開(kāi)文件句柄,對(duì)應(yīng)的函數(shù)主要包括 open/read/write/close 等系統(tǒng)級(jí)調(diào)用。
操作系統(tǒng)一級(jí)提供的文件API都是以文件描述符來(lái)表示文件。STDIN_FILENO就是標(biāo)準(zhǔn)輸入設(shè)備(一般是鍵盤)的文件描述符。
2.區(qū)別
1)數(shù)據(jù)類型不一致:
stdin類型為 FILE*
STDIN_FILENO類型為 int
使用stdin的函數(shù)主要有:fread、fwrite、fclose、fputs、fgets等,基本上都以f開(kāi)頭
比如函數(shù) fget(buf, sizeof(buf), stdin);
使用STDIN_FILENO的函數(shù)有:read、write、close等
2)stdin等是FILE *類型,屬于標(biāo)準(zhǔn)I/O,高級(jí)的輸入輸出函數(shù)。在<stdio.h>。
STDIN_FILENO等是文件描述符,是非負(fù)整數(shù),一般定義為0, 1, 2,屬于沒(méi)有buffer的I/O,直接調(diào)用系統(tǒng)調(diào)用,在<unistd.h>。
3)STDIN_FILENO 是標(biāo)準(zhǔn)輸入的文件描述符
詳見(jiàn)/usr/include/unistd.h
代碼:
/* Standard file descriptors. */<
總結(jié)
以上是生活随笔為你收集整理的linux c之STDIN_FILENO的作用及与stdin的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux网络编程之用select函数实
- 下一篇: linux网络编程之Listen函数参数