国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言的isatty函數和ttyname函數以及sendmsg函數用法

2020-01-26 14:54:06
字體:
來源:轉載
供稿:網友

isatty()函數
頭文件:

#include <unistd.h>

定義函數:

int isatty(int desc);

函數說明:如果參數 desc 所代表的文件描述詞為一終端機則返回1, 否則返回0.

返回值:如果文件為終端機則返回1, 否則返回0.

C語言ttyname()函數:返回一終端機名稱
頭文件:

#include <unistd.h>

定義函數:

char * ttyname(int desc);

函數說明:如果參數desc 所代表的文件描述詞為一終端機, 則會將此終端機名稱由一字符串指針返回, 否則返回NULL.

返回值:如果成功則返回指向終端機名稱的字符串指針, 有錯誤情況發生時則返回NULL.

范例

#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>main(){  int fd;  char * file = "/dev/tty";  fd = open (fiel, O_RDONLY);  printf("%s", file);  if(isatty(fd))  {   printf("is a tty. /n");   printf("ttyname = %s /n", ttyname(fd));  }  else   printf(" is not a tty/n");  close(fd);}

執行:

/dev/tty is a tty ttyname = /dev/tty

C語言sendmsg()函數:經socket傳送數據
頭文件:

#include <sys/types.h>  #include <sys/socket.h>

定義函數:

int sendmsg(int s, const strcut msghdr *msg, unsigned int flags);

函數說明:sendmsg()用來將數據由指定的socket 傳給對方主機. 參數s 為已建立好連線的socket, 如果利用UDP 協議則不需經過連線操作. 參數msg 指向欲連線的數據結構內容, 參數flags 一般默認為0, 詳細描述請參考send().

結構msghdr 定義如下:

struct msghdr{  void *msg_name; //Address to send to /receive from .  socklen_t msg_namelen; //Length of addres data  strcut iovec * msg_iov; //Vector of data to send/receive into  size_t msg_iovlen; //Number of elements in the vector  void * msg_control; //Ancillary dat  size_t msg_controllen; //Ancillary data buffer length  int msg_flags; //Flags on received message};

返回值:成功則返回實際傳送出去的字符數, 失敗返回-1, 錯誤原因存于errno

錯誤代碼:
1、EBADF 參數s 非合法的socket 處理代碼.
2、EFAULT 參數中有一指針指向無法存取的內存空間
3、ENOTSOCK 參數s 為一文件描述詞, 非socket.
4、EINTR 被信號所中斷.
5、EAGAIN 此操作會令進程阻斷, 但參數s 的socket 為不可阻斷.
6、ENOBUFS 系統的緩沖內存不足
7、ENOMEM 核心內存不足 EINVAL 傳給系統調用的參數不正確.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 连州市| 民县| 屏东市| 水富县| 辛集市| 凤冈县| 渝北区| 莆田市| 株洲市| 新宁县| 芷江| 富民县| 武鸣县| 浦县| 临泉县| 南宫市| 桦川县| 沛县| 那曲县| 沈阳市| 普宁市| 龙陵县| 辽阳市| 宁安市| 芒康县| 柘城县| 孝昌县| 宝清县| 庆云县| 太仆寺旗| 嘉荫县| 同心县| 浦城县| 灵宝市| 青浦区| 商水县| 太和县| 卫辉市| 金湖县| 博湖县| 嘉黎县|