Linux系统编程---IO操作
来源:互联网 发布:复杂网络引论 pdf 编辑:程序博客网 时间:2024/05/18 08:58
1.系统调用
系统调用效率较低1.系统调用开销大,要从用户空间切换到内核空间,然后切换回用户空间
2.系统调用与底层驱动相关,不一定能够按指定一次写完。
write函数
#include <unistd>size_t write(int files, const void *buf, size_t nbytes );返回值
0:写入字节为0
-1:写入出错了 错误保存在全局变量errno中
xx:实际写入字节数
read函数
size_t read(int files, const void *buf, size_t nbytes );返回值
0:读取字节为0
-1:读取出错了 错误保存在全局变量errno中
xx:实际读取字节数
open函数
#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>int open(const char *path, int oflags)int open(const char *path, int oflags, mode_t mode);
oflags
mode
返回值
非负整数:文件描述符
-1:出错
close函数
int close(int files)
程序运行时间及CPU使用率
lseek函数
#include <unistd>#include <sys/types.h>(off_t 定义所在)int lseek(int files, off_t offset, int whence )
whence
返回值
-1:设置失败
xxx:返回偏移实际字节数
2.标准库函数
open函数
#include <stdio.h>(NULL定义)FILE * fopen( const char *path, const char *mode)mode
返回值
非空:文件流指针
NULL:打开失败
fread函数
size_t fread(void * ptr, size_t size, int nitems, FILE *stream)size 指定记录大小(单位字节)
nitems 读取记录个数
返回值:
非零值:读取到缓冲区的记录数
fwrite函数
size_t fwrite(void * ptr, size_t size, int nitems, FILE *stream)返回值:
非零值:写到缓冲区的记录数
fclose函数
int fclose(FILE *stream)
fflush函数
int fflush(FILE *stream)
fseek函数
int fseek(FILE *stream, long int offset, int whence)返回值
-1:操作失败
0:操作成功
fgetc、getc、getchar函数
int fgetc(FILE *stream)int getc(FILE *stream)int getchar()
getc可能被实现为宏
getchar返回标准输入流中一个字符
返回值
EOF:出错或到文件尾时
其他:读取的字节
fputc、putc、putchar函数
int fputc(int c, FILE *stream)int putc(int c, FILE *stream)int putchar(int c)返回值
EOF:出错
其他 :写入的字节
0 0
- Linux系统编程---IO操作
- 【Linux系统编程】文件IO操作
- linux系统编程-文件IO操作
- Linux系统IO操作
- Linux学习记录--文件IO操作相关系统编程
- linux系统中的IO操作
- Linux系统编程文件IO
- Linux系统编程(2)——文件与IO之系统调用与文件IO操作
- POSIX系统编程之IO操作
- linux系统编程之一标准IO和系统调用IO
- 七、Linux系统编程-文件和IO(五)fcntl函数及常用操作、文件锁
- Linux系统编程:标准IO操作--索引对应路径下的文件
- Linux编程——文件 IO操作
- 关于LINUX网络编程中的IO 操作
- Linux IO操作应用编程基础
- linux系统编程之文件io小结
- Linux系统编程-文件IO函数
- Linux系统编程-文件IO(一)
- 《APUE》Chapter 10 Signals (学习笔记加上自己的代码)
- 浅谈Python装饰器
- 用数组实现多项式
- LeetCode :: Gray Code[正确解答,真正考察点剖析]
- 边学边写数据结构之线性表
- Linux系统编程---IO操作
- 结合工作对linux做个入门小结
- linux cramfs只读文件系统添加一个写文件夹
- 蓝桥杯猜字母用单向链表实现
- 台北自由行所需资料
- JavaUtils - 日期处理
- boost 学习笔记:Regex 1
- SlidingMenu属性详解
- 重装win7后不能进入Ubuntu的问题