linux——文件操作

文件描述符

1、非负的整数。 
2、表示一个打开的文件。 
3、由系统调用(open)返回,被内核空间(后续系统调用)引用。 
4、内核缺省为每个进程打开三个文件描述符:
•stdin 0 - 标准输入
•stdout 1 - 标准输出
•stderr 2 - 标准出错 

open/creat/close

int open (
    const char* pathname, // 路径
    int         flags,    // 模式
    mode_t      mode      // 权限(仅创建文件有效)
);  // 创建/读写文件时都可用此函数
int creat (
    const char* pathname, // 路径
    mode_t      mode      // 权限
);  // 常用于创建文件

int open (
    const char* pathname, // 路径
    int         flags     // 模式
);  // 常用于读写文件

成功返回文件描述符,失败返回-1。

flags为以下值的位或:

O_RDONLY   - 只读。\
                    |
O_WRONLY   - 只写。 > 只选一个
                    |
O_RDWR     - 读写。/

O_APPEND   - 追加。

O_CREAT    - 创建,不存在即创建(已存在即直接打开,
             并保留原内容,除非...),
             有此位mode参数才有效。

O_EXCL     - 排斥,已存在即失败。\
                                 > 只选一个,
O_TRUNC    - 清空,已存在即清空  /  配合O_CREAT使用
             (有O_WRONLY/O_RDWR)。

int close (
   int fd // 文件描述符
);

write

ssize_t write (
    int         fd,   // 文件描述符
    const void* buf,  // 缓冲区
    size_t      count // 期望写入的字节数
);

成功返回实际写入的字节数,失败返回-1。

read

ssize_t read (
    int    fd,   // 文件描述符
    void*  buf,  // 缓冲区
    size_t count // 期望读取的字节数
);

成功返回实际读取的字节数,失败返回-1

lseek


off_t lseek (
   int   fd,     // 文件描述符
    off_t offset, // 偏移量
    int   whence  // 起始位置
);
成功返回当前文件位置,失败返回-1。
whence取值:
SEEK_SET - 从文件头 (文件的第一个字节)。
SEEK_CUR - 从当前位置 (上一次读写的最后一个字节的下一个位置)。
SEEK_END - 从文件尾 (文件的最后一个字节的下一个位置)

dup/dup2

int dup (int oldfd);
int dup2 (int oldfd, int newfd);
成功返回文件描述符oldfd的副本,失败返回-1。

1、复制一个已打开的文件描述符。 
2、返回的一定是当前未被使用的最小文件描述符。 
3、dup2可由第二个参数指定描述符的值,若指定描述符已打开,则先关闭之。 
4、所返回的文件描述符副本,与源文件描述符,对应同一个文件表。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值