linux系统高级编程

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:读多少个字节
返回值是实际读到的字

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值