---
title: fcntl
description: "**fcntl(int fd, int cmd, ...)**"
url: https://www.hikunpeng.com/document/detail/zh/knet/api/docs/zh/api/posix_apis/fcntl.md
sourcePath: /source/zh/knet/api/docs/zh/api/posix_apis/fcntl.md
indexId: dc0aeecb360729f70e03b06a8278e4409ab6c86c9b570023a9f165995f2c395151
---
# fcntl

## 接口名称

**fcntl(int fd, int cmd, ...)**

## 接口描述

文件控制。

## 参数说明

|参数|说明|备注|
|--|--|--|
|fd|文件描述符|传入socket描述符。|
|cmd|控制命令|支持F_GETFL、F_SETFL、F_GETFD、F_SETFD。其他控制命令不支持，如FIOREAD和FIOWRITE等。|
|...|可变参数值|支持O_NONBLOCK、FD_CLOEXEC（支持SETFD，不起实际作用），O_RDONLY（支持SETFL，不起实际作用）、O_WRONLY（支持SETFL，不起实际作用）、O_RDWR（支持SETFL，不起实际作用）。|

## 返回值

类型：int

- 0：表示成功
- -1：表示失败，并设置errno以指示错误类型

## 错误码

|错误码|描述|
|--|--|
|EINVAL|入参arg大于INT32_MAX或小于0|
|EINVAL|入参cmd不支持，当前仅支持F_GETFL、F_SETFL、F_GETFD和F_SETFD。|
|ELIBBAD|系统符号加载失败。|
|EINVAL|套接字存在，但是套接字对应的数据结构存在异常。|
