zoukankan      html  css  js  c++  java
  • apue3.14节的一个例子

    #include "apue.h"
    #include <fcntl.h>
    
    int
    main(int argc, char *argv[])
    {
    	int		val;
    
    	if (argc != 2)
    		err_quit("usage: a.out <descriptor#>");
    
    	if ((val = fcntl(atoi(argv[1]), F_GETFL, 0)) < 0)
    		err_sys("fcntl error for fd %d", atoi(argv[1]));
    
    	switch (val & O_ACCMODE) {
    	case O_RDONLY:
    		printf("read only");
    		break;
    
    	case O_WRONLY:
    		printf("write only");
    		break;
    
    	case O_RDWR:
    		printf("read write");
    		break;
    
    	default:
    		err_dump("unknown access mode");
    	}
    
    	if (val & O_APPEND)
    		printf(", append");
    	if (val & O_NONBLOCK)
    		printf(", nonblocking");
    #if defined(O_SYNC)
    	if (val & O_SYNC)
    		printf(", synchronous writes");
    #endif
    #if !defined(_POSIX_C_SOURCE) && defined(O_FSYNC)
    	if (val & O_FSYNC)
    		printf(", synchronous writes");
    #endif
    	putchar('\n');
    	exit(0);
    }
    

      关于这里的

    ./a.out 5 5<>temp.foo 
    执行 ./a.out 5 命令, 并通过 5<>temp.foo 将temp.foo 文件以可读写方式打开作为 a.out 命令的 5 号文件描述符。
    
    ./a.out 2 2>>temp.foo
    执行 ./a.out 2 命令, 通过 2>>temp.foo 将命令的标准错误输出添加到 temp.foo 文件的尾部。

  • 相关阅读:
    第十八周个人作业
    十六周个人作业
    个人作业
    第十四周总结
    第十三周周末总结
    排球计分程序说明书
    我和计算机
    排球比赛记分员
    逻辑思维怎样成为一个高手
    用户故事排球教练助手
  • 原文地址:https://www.cnblogs.com/cdwodm/p/2750230.html
Copyright © 2011-2022 走看看