当前位置: 代码网 > 服务器>服务器>Linux > Linux之open()、write()与read()函数用法及说明

Linux之open()、write()与read()函数用法及说明

2026年08月25日 Linux 我要评论
open()函数int open(const char *pathname, int flags, mode_t mode);使用open函数需要的头文件#include <sys/types.

open()函数

int open(const char *pathname, int flags, mode_t mode);

使用open函数需要的头文件

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

open()的返回值

返回一个文件描述符,当文件成功打开时,返回一个非负整数,当文件打开失败时,返回-1

文件描述符将用于write(),read(),lseek()使用

参数

const char *pathname:

文件路径名(绝对路径)或者文件名

int flags:

选择打开文件的操作,分别为:

  • o_rdonly   只读
  • o_wronly   只写
  • o_rdwr  可读可写

当然我们可以与上另外一些可选常量,展示不同的功能:

如:o_rdwr | o_creat    可读可写且当打开这个文件时,该文件不存在则创建它

  • o_creat      当打开这个文件时,该文件不存在则创建它,需要搭配第三个参数使用
  • o_append     每次往这个文件写新的内容时,新的内容总是加到文件的末端

即打开文件后进行写操作时(调用write()),若该文件原先有内容,则不会覆盖原来的内容,而是在末端添加内容

  • o_trunc      清空内容         
  • o_excl       若同时与上该常量与 o_creat,当需要打开的文件存在时,open()会返回一个整型数-1

mode_t mode:(可选参数)

  • 文件访问权限的初始值:(0xxx)
  • 可读 r:  4
  • 可写 w: 2
  • 执行 x:  1

write()函数

ssize_t write(int fd, const void *buf, size_t count);

使用write函数需要的头文件

#include <unistd.h>

write()的返回值

写入成功时,返回写入的字节数(零表示没有任何内容)

如果const void *buf为零,并且fd引用常规文件,则write()可能会返回-1

如果检测到,或未执行错误检测,则将返回0,而不进行任何更改

参数

int fd:

使用open()时返回的文件描述符

void *buf:

内存,一般传内存地址,如数组名,指针名)

size_t count:

写入字节数

进行完写操作后,光标会停在刚写入的内容末端

read()函数

ssize_t read(int fd, void *buf, size_t count);

使用read函数需要的头文件

#include <unistd.h>

read()的返回值

成功时,返回读取的字节数(零表示结束)

出现错误时,返回-1

参数:

int fd:

使用open()时返回的文件描述符

void *buf:

内存,一般传内存地址,如数组名,指针名

size_t count:

读取字节数

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com