stdin是什么类型符
stdin是文件描述符,代表标准输入(键盘等),也就是说在linux中stdin称为终端(Terminal)的标准输入(standard input)。
在linux中经常会看到stdin,stdout和stderr,这3个可以称为终端(Terminal)的标准输入(standard input),标准输出( standard out)和标准错误输出(standard error)。
通过man stdin查看手册,可以看到它们都是在stdio.h中定义的。 当linux开始执行程序的时候,程序默认会打开这3个文件流,这样就可以对终端进行输入输出操作。
linux系统文件存储结构好处
从数值上看,文件描述符是一个非负整数,其本质就是一个句柄,所以也可以认为文件描述符就是一个文件句柄。那么何为句柄呢?一切对于用户透明的返回值,即可视为句柄。用户空间利用文件描述符与内核进行交互;而内核拿到文件描述符后,可以通过它得到用于管理文件的真正的数据结构。
使用文件描述符即句柄,有两个好处:一是增加了安全性,句柄类型对用户完全透明,用户无法通过任何hacking的方式,更改句柄对用的内部结果,比如Linux内核的文件描述符,只有内核才能通过该值得到相应的文件结构;二是增加了可扩展性,用户的代码只依赖于句柄的值,这样实际的结构的类型就可以随时发生变化,与句柄的映射关系也可以随时改变,这些变化都不回影响任何现有的用户代码。
Linux的每个进程都会维护一个文件表,以便维护该进程打开的文件信息,包括打开的文件的个数、每个文件的偏移量等信息。
Linux下如何查看进程打开的文件以及修改进程打开文件数上限
Linux文件数打开数 查看当前系统最大的文件打开数, 在linux终端中输入ulimit -a “open files”参数选项后面的数值就是当前系统支持的最大打开文件数 修改linux最大文件打开数 如果要修改linux最大文件打开数,可以通过参数命令 unlimit -n 后面接需要设置的文件数量。
设置好之后,再次查看 unlimit -a 你会发现已经设置为新的数量了 设置好之后,再次编辑修改重启设置的服务,已经没有刚刚那个1024文件数限制的报错提示 其他修改方法 除此之外,如果针对不同的用户。
也可以通过编辑修改 /etc/rc.local文件设置环境变量,添加 unlimit -n ,重启之后一般就自动设置好了 查看系统句柄文件数 当前系统文件句柄的最大数目,只用于查看,不能设置修改 cat /proc/sys/fs/file-max 查看进程打开文件数 如果需要查看所有进程的文件打开数,命令lsof |wc -l
1. 查看进程打开文件 在/proc下,对应每个进程有一个以进程号命名的目录,该目录下有一个fd目录,该目录下面的每个文件是一个符号连接,其文件名对应该进程占用的一个文件描述符,而连接指向的内容表示文件描述符对应的实际文件。 2. 修改进程打开文件数上限Linux默认的进程打开文件上限是1024个,可以通过ulimit 把所有用户的进程打开文件上限改为65536,可以加入下面两行 * soft nofile 65535 还可以只真对某个用户或某个组做修改,具体方法参见文件注释。修改后需要重新启动系统才能生效。