linux c之STDIN_FILENO的作用及与stdin的区别
生活随笔
收集整理的這篇文章主要介紹了
linux c之STDIN_FILENO的作用及与stdin的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.STDIN_FILENO的作用
STDIN_FILENO屬于系統API接口庫,其聲明為 int 型,是一個打開文件句柄,對應的函數主要包括 open/read/write/close 等系統級調用。
操作系統一級提供的文件API都是以文件描述符來表示文件。STDIN_FILENO就是標準輸入設備(一般是鍵盤)的文件描述符。
2.區別
1)數據類型不一致:
stdin類型為 FILE*
STDIN_FILENO類型為 int
使用stdin的函數主要有:fread、fwrite、fclose、fputs、fgets等,基本上都以f開頭
比如函數 fget(buf, sizeof(buf), stdin);
使用STDIN_FILENO的函數有:read、write、close等
2)stdin等是FILE *類型,屬于標準I/O,高級的輸入輸出函數。在<stdio.h>。
STDIN_FILENO等是文件描述符,是非負整數,一般定義為0, 1, 2,屬于沒有buffer的I/O,直接調用系統調用,在<unistd.h>。
3)STDIN_FILENO 是標準輸入的文件描述符
詳見/usr/include/unistd.h
代碼:
/* Standard file descriptors. */<
總結
以上是生活随笔為你收集整理的linux c之STDIN_FILENO的作用及与stdin的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux网络编程之用select函数实
- 下一篇: linux网络编程之Listen函数参数