linux常用c函数:信号处理篇

来源:Linux认证    发布时间:2012-11-10    Linux认证视频    评论

  返回值

  范例  #include<stdio.h>

  main()

  {

  FILE *fp;

  fp = fopen(“/tmp/noexist”,”r+”);

  if(fp = =NULL) perror(“fopen”);

  }

  执行  $ ./perror

  fopen : No such file or diretory

  strerror(返回错误原因的描述字符串)

  相关函数  perror

  表头文件  #include<string.h>

  定义函数  char * strerror(int errnum);

  函数说明  strerror()用来依参数errnum的错误代码来查询其错误原因的描述字符串,然后将该字符串指针返回。

  返回值  返回描述错误原因的字符串指针。

  范例  /* 显示错误代码0 至9 的错误原因描述*/

  #include<string.h>

  main()

  {

  int i;

  for(i=0;i<10;i++)

  printf(“%d : %s/n”,i,strerror(i));

  }

  执行  0 : Success

  1 : Operation not permitted

  2 : No such file or directory

  3 : No such process

  4 : Interrupted system call

  5 : Input/output error

  6 : Device not configured

  7 : Argument list too long

  8 : Exec format error

  9 : Bad file descriptor

  mkfifo(建立具名管道)

  相关函数  pipe,popen,open,umask

  表头文件  #include<sys/types.h>

  #include<sys/stat.h>

  定义函数  int mkfifo(const char * pathname,mode_t mode);

  函数说明  mkfifo()会依参数pathname建立特殊的FIFO文件,该文件必须不存在,而参数mode为该文件的权限(mode%~umask),因此 umask值也会影响到FIFO文件的权限。Mkfifo()建立的FIFO文件其他进程都可以用读写一般文件的方式存取。当使用open()来打开 FIFO文件时,O_NONBLOCK旗标会有影响

  1、当使用O_NONBLOCK 旗标时,打开FIFO 文件来读取的操作会立刻返回,但是若还没有其他进程打开FIFO 文件来读取,则写入的操作会返回ENXIO 错误代码。

  2、没有使用O_NONBLOCK 旗标时,打开FIFO 来读取的操作会等到其他进程打开FIFO文件来写入才正常返回。同样地,打开FIFO文件来写入的操作会等到其他进程打开FIFO 文件来读取后才正常返回。

  返回值  若成功则返回0,否则返回-1,错误原因存于errno中。

  错误代码  EACCESS 参数pathname所指定的目录路径无可执行的权限

  EEXIST 参数pathname所指定的文件已存在。

  ENAMETOOLONG 参数pathname的路径名称太长。

  ENOENT 参数pathname包含的目录不存在

  ENOSPC 文件系统的剩余空间不足

  ENOTDIR 参数pathname路径中的目录存在但却非真正的目录。

  EROFS 参数pathname指定的文件存在于只读文件系统内。

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答