美文网首页
10.fcntl函数介绍

10.fcntl函数介绍

作者: 辉神来了 | 来源:发表于2019-10-30 14:49 被阅读0次
fcntl函数介绍

####### fcntl的原型和作用

  • fcntl函数是一个多功能文件管理的工具箱,接收2个参数+1个变参。第一个参数是fd表示要操作哪个文件,第二个参数是cmd表示要进行哪个命令操作。变参是用来传递参数的,要配合cmd来使用。

  • cmd的样子类似于F_XXX,不同的cmd具有不同的功能。学习时没必要去把所有的cmd的含义都弄清楚(也记不住),只需要弄明白一个作为案例,搞清楚它怎么看怎么用就行了,其他的是类似的。其他的当我们在使用中碰到了一个fcntl的不认识的cmd时再去查man手册即可。

  • fcntl的常用cmd

  • F_DUPFD这个cmd的作用是复制文件描述符(作用类似于dup和dup2),这个命令的功能是从可用的fd数字列表中找一个比arg大或者和arg一样大的数字作为oldfd的一个复制的fd,和dup2有点像但是不同。dup2返回的就是我们指定的那个newfd否则就会出错,但是F_DUPFD命令返回的是>=arg的最小的那一个数字。

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>


#define FILENAME    "1.txt"


int main(void)
{
    int fd1 = -1, fd2 = -1;
    
    fd1 = open(FILENAME, O_RDWR | O_CREAT | O_TRUNC, 0644);
    if (fd1 < 0)
    {
        perror("open");
        return -1;
    }
    printf("fd1 = %d.\n", fd1);
    
    close(1);
    
    fd2 = fcntl(fd1, F_DUPFD, 0);
    printf("fd2 = %d.\n", fd2);

    while (1)
    {
        write(fd1, "aa", 2);
        sleep(1);
        write(fd2, "bb", 2);
    }


    
    close(fd1);
    return -1;
}

相关文章

  • 10.fcntl函数介绍

    fcntl函数介绍 ####### fcntl的原型和作用 fcntl函数是一个多功能文件管理的工具箱,接收2个参...

  • 函数介绍

    函数 是代码的基本模块,其完成某个特定的功能,可以被其他代码使用。函数能够提高代码的模块化程度,更加有效地组织代码...

  • Python基础入门 - 函数与模块

    1. 函数 1.1 介绍 课时介绍(1) 函数介绍。(2) 函数参数与返回值。(3) 函数应用。 目标(1) 掌握...

  • 2018-05-23 InfluxDB的聚合类函数Aggrega

    一、说明 本文主要介绍InfluxDB的聚合类函数Aggregations。 二、函数介绍 1)count()函数...

  • Python函数式介绍一 - 高阶函数

    Python函数式介绍一 - 高阶函数Python函数式介绍二 - 链式调用 最近为了给朋友推广Python函数式...

  • Swift基础语法-类的构造函数

    本节知识点 构造函数的介绍 构造函数的基本使用 自定义构造函数 属性与构造函数 1. 构造函数的介绍 构造函数类似...

  • Oracle开窗函数笔记及应用场景

    介绍Oracle的开窗函数之前先介绍一下分析函数,因为开窗函数也属于分析函数 分析函数用于计算基于组的某种聚合值,...

  • extract()函数介绍

    extract($_GET) 返回值为一个整型数字:传入的键值对数组的参数的个数 这个函数功能实现效果: 把htt...

  • 激活函数介绍

    ReLU对比Sigmoid主要变化:1.单侧抑制2.相对宽阔的兴奋边界3.稀疏激活性 (1) sigmoid函数(...

  • scala 函数介绍

    1 > scala 概念 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向...

网友评论

      本文标题:10.fcntl函数介绍

      本文链接:https://www.haomeiwen.com/subject/ogehyctx.html