MST

星途 面试题库

面试题:C语言中如何设置文件描述符的读写权限

在Linux环境下使用C语言编程,假设已经打开了一个文件得到文件描述符fd,现在需要将该文件描述符设置为可读可写权限,简述实现步骤并写出关键代码。
42.6万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
  1. 简述实现步骤
    • 使用fcntl函数来获取文件描述符fd的当前标志位。
    • 对获取到的标志位进行修改,添加可读可写权限标志。
    • 使用fcntl函数将修改后的标志位设置回文件描述符fd
  2. 关键代码
#include <fcntl.h>
#include <stdio.h>

int main() {
    int fd = 0; // 假设已经打开文件得到fd
    int flags;
    // 获取当前文件描述符的标志位
    flags = fcntl(fd, F_GETFL, 0);
    if (flags == -1) {
        perror("fcntl F_GETFL");
        return 1;
    }
    // 添加可读可写权限标志
    flags |= O_RDWR;
    // 设置修改后的标志位
    if (fcntl(fd, F_SETFL, flags) == -1) {
        perror("fcntl F_SETFL");
        return 1;
    }
    return 0;
}