Linux环境文件I/O操作

一、通用的I/O模型

基础的系统调用函数:

//打开文件
int open(const char *pathname, int flags, .../* mode_t mode */);
//读取文件内容
ssize_t read(int fd, void *buffer, size_t count);
//写入文件
ssize_t write(int fd, void *buffer, size_t count);
//关闭文件
int close(int fd);
//改变文件偏移量
off_t lseek(int fd, off_t offset, int whence);
//创建文件(不常用)
int creat(const char *pathname, mode_t mode);
//额外操作
int ioctl(int fd, int request, .../* argp */);
  • 打开文件: pathname为文件路径,flags表打开方式,只读只写读写,还有文件不存在时是否创建等,mode在不创建新文件时可省略,创建新文件时表示新文件的访问权限,返回值为文件描述符,打开失败返回-1。
  • 读取文件内容: buffer存读取的文件内容,count为至多读取的字节数,返回值为实际读取的字节数,失败返回 -1。
  • 写入文件: buffer存将要写入的内容,count从buffer中读取的字节数,返回值实际写入的字节数,有可能小于count,失败返回-1。
  • 关闭文件: 返回值关闭成功返回0,失败返回-1。
  • 改变文件偏移量: offset为偏移的字节数,可正可负,whence 可以是SEEK_SET / SEEK_CUR / SEEK_END,分别表示相对于起始字节、当前偏移量、最后一个字节的下一个字节。比如lseek(fd, -1, SEEK_END); 表示指向最后一个字节。成功返回新的文件偏移量,失败返回-1。
  • 创建文件: pathname创建的文件路径,mode 为权限掩码。如文件存在则会将文件清空。返回文件描述符,失败返回-1。
  • 额外操作: 待补充。。

二、进程

基础的系统调用函数:

#include <unistd.h>
pid_t getpid(void);		//获取本进程的进程ID
pid_t getppid(void);    //获取父进程的进程ID

除少数系统进程,一般进程号和进程没有固定关系。Linux内核限制进程号不大于32767(在较新的版本中,可以修改/proc/sys/kernel/pid_max调整进程号上限),达到限制时重置进程号计数器为300。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值