文件系统的POSIX行为

时间:2022-04-15 阅读:275385 评论:0 作者:hkear

研究postgresql数据库故障转移时,提到可以使用一个网络文件系统,但是要注意的是该文件系统应具有完全的POSIX行为,那么什么是文件系统的POSIX行为呢?

POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。

POSIX接口中对文件系统的要求如下:

1.文件名由除系统目录分隔符(unix是/,windows是\)和空字符“\0”外的任意ASCII字符组成,现代系统很多还可以包含UNICODE字符,但是还是推荐使用传统的ASCII码命名.

2.目录不能创建硬链接.

3.文件描述符是一个非负数.

4.文件描述符(fd)是一个非负数,每个进程的fd之间不存在联系,每个进程都有一个进程表项,每个进程调用打开文件系统调用时,进程表项就会增加一条,每条的id就是fd,fd只会按照“从0开始(每个进程从各自的0开始),返回最小的未用的fd”的这个规则返回fd(通常0到2会被系统标准输出输入占用),不同进程打开同一个文件,会有不同的fd返回.

5.一般shell程序会把0、1、2三个文件描述符标准化为shell程序的输入输出和错误输出,换句话说文件描述符0到2已经被这3个标准输入输出占用了.

POSIX也定义了三个常量代表了这三个数字包含在unistd.h头文件上

STDIN_FILENO 0
STDOUT_FILENO 1
STDERR_FILENO 2

 

 其实,windows,linux,unix操作系统都满足POSIX规范。

本文链接: https://dkicloud.com/?id=141 转载请注明出处!