系统IO常用函数接口

本文整理归纳了几种常用的系统IO的函数借口,以供读者查阅使用

系统IO与标准IO的区别

1.标准IO可以看成是在系统IO的基础上封装了缓冲机制。
2.标准IO在内核中使用链表的管理方式,故返回的是文件指针;
3.系统IO在内核中使用顺序表的方式管理,故返回的是下标。

打开文件:open

image
注:

  • 当使用系统调用open打开一个文件时,文件的光标默认位于文件的开头。
  • open函数的返回值为文件描述符,内核并不是以被打开文件的路径和名称来管理文件,而是在调用open函数的时候会从未分配的文件描述符中找到一个最小的提供给被打开的文件。在对文件进行读写(R/W)访问时同样是通过这个文件描述符实现。
  • 可以通过Linux系统提供了一个查看和修改系统资源的shell命令: ulimit -a 来打印当前系统所有资料的阈值。同时,也可查到当前终端默认可以使用栈空间大小为8M
  • 可以使用修改指令ulimit -n xxx来修改当前可以打开文件的数量

关闭文件:close

image
注:

  • close函数可以对同一个文件反复调用,并且不会出错,因为open函数没有申请堆内存,但是多次调用close函数关闭同一个文件的动作是没有意义。

文件读取:read

image
注:

  • 当使用read系统调用从文件中读取数据时,文件的光标会移动到读取数据的末尾。

文件写入:write

image
注:

  • 当使用write系统调用向文件中写入数据时,文件的光标会移动到写入数据的末尾。

位置偏移:lseek

image
注:

  • 成功返回光标相较于文件开头的偏移量,以字节为单位。
  • 如需读取整个文件的偏移量,whence参数设置为SEEK_END即可。
posted @ 2024-05-25 13:08  Dazz_24  阅读(33)  评论(0)    收藏  举报