`
chaotang0281
  • 浏览: 46147 次
  • 性别: Icon_minigender_2
  • 来自: 威海
社区版块
存档分类
最新评论

linux 文件描述符 进程

阅读更多

今天在看qmail 源代码的时候,有关进程和文件描述符的地方,有点不懂,在网上小查了一下,浅显的样子应该是这样.

文件描述符,录属于进程.对于不同的进程,文件描述符是相互独立的,所以在不同的进程中,可以用相同的文件描述符来指向不同的文件或者管道之类的.

下面是在unix 环境高级编程的话:

对于内核而言 ,所有打开文件都由文件描述符引用.文件描述符是一个非负整数.当打开一个现存文件或创建一个新文件时,内核向 进程 返回一个文件描述符.当读,写一个文件时,用open或create返回的文件描述符标识该文件,将其作为参数传送给read或write.

按照惯例,UNIX shell 使文件描述符0与标准输入相结合,文件描述符1与标准输出相结合,文件描述符2与打闪出错相结合.

这是UNIX shell以及很多应用程序的惯例,而与内核无关.

分享到:
评论
2 楼 XLLLQ 2011-08-31  
楼上理解有问题  本来是一个东西
1 楼 gift5168xf 2010-04-22  
最近因为忙很少上javaeye了。但是看到了你这篇文章我不得不上来顶下,我现在在学shell。当我看到shell文件描述符时有点不太明白。上网上查资料,结果大多数人写的都是把内核文件描述符和shell文件描述符扯在一起,让我更晕了。看到这篇文章我真是豁然开朗了。多谢分享!!

相关推荐

    嵌入式开发教程之linux进程与它的文件描述符--千锋培训

    文档介绍了一)概述,二)父/子进程对文件描述符的分支使用示例,三)文件描述符与/proc,四)文件描述符与lsof命令,五)文件描述符的限制

    linux下文件描述符限制问题

    linux下文件描述符最大限制默认最大为1024,通过 [root@localhost ~]# ulimit -n 1024 这个命令可以查看。此值可以修改。 进程的文件描述符,可以通过 [root@localhost ~]# ls -al /proc/13623/fd |wc -l 59 输出...

    Rust板条箱用于Linux的进程文件描述符(pidfd)-Rust开发

    进程文件描述符(pidfd)提供了一种无竞争的方式来管理Linux上的进程,使用文件描述符而不是在进程退出后可以重用的数字进程ID(PID)来维护对进程的持久引用。 Linux的进程文件描述符(pidfd)提供了一种无竞争的...

    Linux进程间传递文件描术符事例代码

    linux下,进程间传递文件描符的事例代码。

    修改linux进程可打开的文件数的限制open files

    修改linux进程可打开的文件数的限制open files linux中一切都是文件 默认linux一个进程可打开1024个文件 大并发需要达到5万个文件描述符FD,你必须修改该参数值才行

    通过文件描述符恢复被误删除的文件(前提是文件正被某一个进程占用着,未被释放)

    通过文件描述符恢复被误删除的文件(前提是文件正被某一个进程占用着,未被释放)

    详解Linux下的文件标述符和文件指针

    在linux当中,每个进程会在进程控制块(PCB)当中保存着一份文件描述符表,文件描述符就是这个表的索引,每个表都有一个指 向已经打开文件的指针。 每个linux进程都应该有三个标准的文件描述符,对应三个标准流。 ...

    Linux编写内核模块新增系统调用遍历进程树--基于Ubuntu20.04.03LTS实现

    利用该系统调用能够遍历系统当前所有进程的任务描述符,并按进程父子关系将这些描述符所对应的进程id(PID)组织成树形结构显示。 实验环境: Ubuntu 20.04.03 LTS,Kernel Version 5.13.0(截至2022年2月18日Ubuntu...

    system()改写

    不会关闭从父进程继承过来的文件描述符 如果使用system()调用生命期短的进程一般问题不大,如果调用一个生命期比主进程还长的进程肯定有问题,比如在主进程中打开了一个socket并绑定了一个固定的端口,然后用system...

    Linux进程文件1

    1. 进程级文件描述符表(file descriptor table) 2. 访问模式,由 open()调用设置,例如:只读、只写或读写等 1. 文件类型(fi

    笔记_Linux编程.doc

    3\若在同一进程中,用两种方式打开不同文件(或先关闭再打开另一个),所用的文件打开表是同一个,但是在文件打开表中的文件描述符是不同的。 重要函数 fileno(fp) //得到文件指针所指向的文件打开表文件描述符。 ...

    linux 下socket通信中select的用法实例

    而进程或线程继续执行,所以效率较高)方式工作的程序,它能够监视我们需要监视的文件描述符的变化情况——读写或是异常。下面详细介绍一下! Select的函数格式(我所说的是Unix系统下的伯克利socket编程,和...

    非常宝贵的LINUX学习笔记

    【linux学习笔记-2】父子进程共享文件描述符 【linux学习笔记-3】文件操作(stat,chmod,umask) 【linux学习笔记-4】进程扇和进程链 【linux学习笔记-5】编写自己的ls命令 【linux学习笔记-6】文件IO操作--读写、...

    fdd:fdd -- 文件(套接字、管道等)描述符守护进程

    ####文件描述符守护进程 用于创建描述符并将描述符传递给进程的守护进程。 fdd 的主要动机是允许特权进程获取原始和数据包套接字,但它也可能支持一些其他危险任务(例如打开任意文件)。 只有以 root 身份运行...

    Linux学习笔记Linux学习资料Linux教程

    【linux学习笔记-2】父子进程共享文件描述符.doc 【linux学习笔记-3】文件操作(stat,chmod,umask).doc 【linux学习笔记-4】进程扇和进程链.doc 【linux学习笔记-5】编写自己的ls命令.doc 【linux学习笔记-6】文件IO...

    linux系统网络编程.pdf

    简单地说,套接口就是一种使用U N I X系统中的文件描述符和系统进程通信的一种方法。 因为在U N I X系统中,所有的I / O操作都是通过读写文件描述符而产生的。文件描述符就是 一个和打开的文件相关连的整数。但...

    linux网络编程教程

    套接口是一种使用Linux系统中的文件描述符和系统进程通信的一种方法。 Linux系统中,文件可以是一个真正存储在磁盘上的文件、一个FIFO、一个管道、一个终端、一个网络连接或者系统中的任何其他的东西。文件描述符是...

    Linux内核中的文件描述符:fd的分配–get_unused_fd

    在Linux内核中主要有两个函数涉及到文件描述符的分配:get_unused_fd和locate_fd。本文主要讲解get_unused_fd,将会在下一篇文章中介绍locate_fd。首先给出get_unused_fd的定义(fs/open.c): int get_unused_fd...

    libpassfds:使用 SCM_RIGHTS 和 sendmsgrecvmsg 在系统(如 Linux)上的进程之间传递文件描述符的库

    使用 SCM_RIGHTS 和 sendmsg/recvmsg 在系统(如 Linux 或 UNIX)上的进程之间传递文件描述符的库。 查看 passfds.h 获取有关接口的信息,查看 test.c 获取客户端和服务器通过使用此库传递的套接字进行通信的示例。

    linux操作系统课程设计完善代码

    文件描述符应该是一个非负整数,该整数是进程当前打开的文(30%,125行)实现文件系统的系统调用(creat,open,read,write,close和unlink,在syscall.h文件中列出)。你可以在UserProcess.java中看到处理halt系统...

Global site tag (gtag.js) - Google Analytics