歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

linux常用c函數:終端控制篇(三)

 struct timeval

  {

  time_t tv_sec;

  time_t tv_usec;

  };

  返回值  如果參數timeout設為NULL則表示select()沒有timeout。

  錯誤代碼  執行成功則返回文件描述詞狀態已改變的個數,如果返回0代表在描述詞狀態改變前已超過timeout時間,當有錯誤發生時則返回-1,錯誤原因存於errno,此時參數readfds,writefds,exceptfds和timeout的值變成不可預測。

  EBADF 文件描述詞為無效的或該文件已關閉

  EINTR 此調用被信號所中斷

  EINVAL 參數n 為負值。

  ENOMEM 核心內存不足

  范例  常見的程序片段:fs_set readset;

  FD_ZERO(&readset);

  FD_SET(fd,&readset);

  select(fd+1,&readset,NULL,NULL,NULL);

  if(FD_ISSET(fd,readset){……}

  ttyname(返回一終端機名稱)

  相關函數  Isatty

  表頭文件  #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

Copyright © Linux教程網 All Rights Reserved