对于内核而言,所有打开的文件都通过文件描述符号引用。文件描述符是一个非负整数。
当打开一个现有文件或创建一个新文件时候,内核向进程返回一个文件描述符。
当读或写一个文件时候,使用open或creat返回的文件描述符标识该文件,将作为参数传给read或write。
在依从POSIX(Portable Operating System Interface 可移植操作系统接口)的应用程序中,幻数0,1,2应
当打开一个现有文件或创建一个新文件时候,内核向进程返回一个文件描述符。
当读或写一个文件时候,使用open或creat返回的文件描述符标识该文件,将作为参数传给read或write。
在依从POSIX(Portable Operating System Interface 可移植操作系统接口)的应用程序中,幻数0,1,2应
当替换成符号常量STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO,这些常量都定义在头文件 <unistd.h> 中。
文件描述符的变化范围是 0 ~ OPEN_MAX, 每个进程的最大打开文件数 限制名:_SC_OPEN_MAX
#include <stdio.h> #include <unistd.h> int main(void) { printf("Max Open : %d",sysconf(_SC_OPEN_MAX)); printf("Max Child Process : %ld",sysconf(_SC_CHILD_MAX)); printf("时钟滴答数:%ld",sysconf(_SC_CLK_TCK)); return 0; } |
我的电脑执行结果:
Max Open: 1024 Max Chlid Process : 7235 时钟滴答数 : 100 |