QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 667|回复: 7

接着一个问题 系统调用的

[复制链接]
发表于 2003-8-17 21:49:01 | 显示全部楼层 |阅读模式
[code:1]
// getfl

#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char **argv)
{
        const char *my_name = argv[0];
        int val, accmode;
       
        if (argc != 2) {
                fprintf(stderr, "usage: a.out <decriptor#>\n");
                exit(0);
        }

        if ((val = fcntl(atoi(argv[1]), F_GETFL, 0)) < 0) {
                perror(my_name);
                exit(0);
        }

        accmode = val & O_ACCMODE; // 这里以下如何理解

        switch (accmode) {
        case O_RDONLY:
                printf("read only");
                break;
        case O_WRONLY:
                printf("write only");
                break;
        case O_RDWR:
                printf("read write");
                break;
        }

        if (val & O_APPEND)
                printf(", append");
        if (val & O_NONBLOCK)
                printf(", nonblocking");

        printf("\n");
}
[/code:1]

以及 ACCMODE O_APPEND O_NONBLOCK的取值在哪里可以找到
发表于 2003-8-18 09:23:47 | 显示全部楼层
这些掩码的定义在fcntl里的  意思么 你看了它的值也就明白了
回复

使用道具 举报

 楼主| 发表于 2003-8-18 09:51:48 | 显示全部楼层
[quote:f74201793a="wsm"]这些掩码的定义在fcntl里的  意思么 你看了它的值也就明白了[/quote]
谢谢,我去看看啊
回复

使用道具 举报

 楼主| 发表于 2003-8-19 08:53:47 | 显示全部楼层
我在fnctl.h里没有找到啊
回复

使用道具 举报

发表于 2003-8-19 08:59:57 | 显示全部楼层
?怎么会? look:

/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
   located on an ext2 file system */
#define O_ACCMODE           0003
#define O_RDONLY             00
#define O_WRONLY             01
#define O_RDWR                     02
#define O_CREAT                   0100        /* not fcntl */
#define O_EXCL                   0200        /* not fcntl */
#define O_NOCTTY           0400        /* not fcntl */
#define O_TRUNC                  01000        /* not fcntl */
#define O_APPEND          02000
#define O_NONBLOCK          04000
#define O_NDELAY        O_NONBLOCK
...
回复

使用道具 举报

 楼主| 发表于 2003-8-21 08:49:38 | 显示全部楼层
??我上回就是没有找到啊
回复

使用道具 举报

发表于 2003-8-21 09:07:43 | 显示全部楼层
在asm下面的fcntl里的 我是搜索到的
回复

使用道具 举报

 楼主| 发表于 2003-8-21 10:31:07 | 显示全部楼层
我也是啊
cat /usr/include/fcntl.c | grep O_RDONLY
对不对啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-15 06:05 , Processed in 0.053981 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表