大家好,这里是小缺,一名对嵌入式软件开发充满热情的探索者。在学习过程中,想到写一些文章,总结归纳所学的知识点,温故而知新。并将我的学习心得、实践经验和遇到的问题以及解决方案分享给大家,同时也希望能够从社区中学习到更多的知识和经验。今后,我会记录我在嵌入式软件开发道路上的点点滴滴。本篇文章我将向大家介绍文件描述符,一些常见系统调用IO函数,例如open、write、read、remove、close
一、 文件描述符
在Unix和类Unix操作系统中,文件描述符是一个非负整数,用于标识一个打开的文件或其它I/O对象。文件描述符是进程级别的,不同的进程可以拥有相同的文件描述符编号,但它们各自引用不同的文件或I/O对象。
当一个进程打开一个文件或创建一个新的文件时,操作系统会分配一个文件描述符给这个文件。这个文件描述符可以被用来对文件进行读取、写入、移动文件指针等操作。简单言之,如果要操作文件,那么就是对这个文件描述符的操作
当一个程序运行或者一个进程开启时,系统会自动创建三个文件描述符
标准输入(Standard Input):文件描述符编号为0。这个文件描述符通常与键盘输入关联,进程可以通过它来读取输入数据。
标准输出(Standard Output):文件描述符编号为1。这个文件描述符通常与屏幕输出关联,进程可以通过它来输出数据。
标准错误(Standard Error):文件描述符编号为2。这个文件描述符也与屏幕输出关联,但它用于输出错误信息。
我们要注意,当进程打开一个文件时,操作系统分配的文件描述符是按照一定顺序分配的,通常是按照进程当前已打开的文件描述符的最小空闲值来分配。这意味着如果进程已经打开了文件描述符0、1和2,那么下一个打开的文件将被分配文件描述符3,依此类推。
二、open函数
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h> //open函数所需头文件
int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode);
功能

最低0.47元/天 解锁文章
744





