linux下高级编程的特点;涉及到内核向用户空间提供的接口(函数)
接口的功能 参数 返回值
I/O
文件IO
头文件:unistd.h fcntl.h
是从用户空间角度考虑的输入输出
从内核读数据或从文件中读数据叫 输入 read函数
写数据到内核或写数据到文件中叫 输出 write 函数
打开或创建一个文件 open函数
关闭一个文件 close函数
open(char*,flag,mode)
char* 要打开的文件名和路径 一般用命令行参数传入(main参数)
{
参数2(flags)
flags分为两类:主类,副类
主类:O_RDONLY 以只读方式打开 / O_WRONLY 以只写方式打开 /O_RDWR 以可读可写方式打开
三这是互斥的
副类:
O_CREAT 如果文件不存在则创建该文件
O_EXCL 如果使用O_CREAT选项且文件存在,则返回错误消息
O_NOCTTY 如果文件为终端,那么终端不可以调用open系统调用的那个进程的控制终端
O_TRUNC 打开一个文件删除文件中原有数据
O_APPEND 以追加的方式打开不删除里面数据
主副可以配合使用,例如:O_RDWR|O_CREAT|O_TRUNC
————————————————
版权声明:本文为CSDN博主「大根菌」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39296438/article/details/79422068
}
返回值 成功返回文件描述符,它是一个非负的正参数 。即文件ID号
出错返回-1
linux中存在掩码umask 可用umask查看也可用umask+xxx来修改
实际值为给定的mode与掩码取反相与
write函数
write(int fd,viod*buf,size)
参数1:写到哪个文件(ID号)
参数2:写的内容
参数3:写多少个字节
返回值是实际写的字节数
read函数
read(int fd,viod*buf,size)
参数1:读那个文件
参数2:读到哪里去
参数3:读多少个字节
返回值是实际读到的字