首页 文章
  • 0 votes
     answers
     views

    C:`write error:fork,dup2和execv之后的错误文件描述符`

    继续this problem,但我会重申: 对于家庭作业,我必须编写一个包括重定向的基本shell . 该程序使用readline来提示输入,解析输入字符串,并将其分解为可执行文件名,参数和输入/输出文件(如果适用) . 在解析字符串之后,它使用dup2()分叉和子execv()'s to the executable that was passed in. I' m来更改fork之后和execv...
  • 0 votes
     answers
     views

    Child在fork之后写入父文件中创建的文件描述符

    我有一个父进程,它侦听套接字上的传入连接,并在接受客户端后,它将相关的文件描述符和一些其他日期传递给子进程(通过命名管道) . 从此刻起,子进程将为客户端提供服务,父进程不断监听新客户端 . 我的问题是,当我尝试在子进程中写入文件描述符时,我将收到错误(错误的文件描述符)并且写入失败 . 我的猜测是,因为这些文件描述符是在fork之后创建的,所以child不能简单地使用它们,它们只属于父进程 . ...
  • 5 votes
     answers
     views

    Linux FD向用户公开等待

    想象一下,有一个库可以启动服务器套接字并管理所有客户端的epoll fd . 由于所有内容都应该是非阻塞的,因此控制权将传递给用户,该用户可能希望对不同的fds进行选择,包括通知库的那个 . 目前,用户指定回调 . 然后,用户可以调用评估epoll的服务例程并调用那些回调,以避免不断调用服务例程,而是执行用户可能想要在epoll fd上等待的其他事情 . 在不暴露epoll fd的情况下向用户公开...
  • 4 votes
     answers
     views

    为什么在fork之后关闭文件描述符会影响子进程?

    我想通过按钮单击一个在linux中运行程序,因此我写了一个函数 execute : void execute(const char* program_call, const char* param ) { pid_t child = vfork(); if(child == 0) // child process { int child_pid = get...
  • 0 votes
     answers
     views

    从一个管道读取多线程

    我正在实现一个运行游戏服务器的系统 . 我有一个进程("game controller")创建两个管道对并分叉一个子进程 . 子进程将其STDIN复制到一个管道,并将其STDOUT和STDERR复制到另一个管道,然后运行 execlp() 以运行游戏代码 . 游戏控制器将有两个线程 . 第一个将阻止 accept() 在命名的UNIX套接字上接收来自另一个应用程序的输入,第二个...
  • 196 votes
     answers
     views

    现代Linux机箱可以拥有的理论最大开放TCP连接数是多少

    假设硬件具有无限的性能,Linux机箱是否支持> 65536个开放的TCP连接? 据我所知,短暂端口的数量(<65536)限制了从一个本地IP到一个远程IP上的一个端口的连接数 . 元组(本地IP,本地端口,远程IP,远程端口)是唯一定义TCP连接的东西;这是否意味着如果多个参数中的一个以上是免费的,则可以支持超过65K的连接 . 例如连接到多个本地IP的多个远程主机上的单个端口号 ....
  • 1 votes
     answers
     views

    使用read()函数时检查EOF

    这是我第一次使用文件描述符进行阅读,现在我已经通过试验和错误测试了大约3个小时,而且我几乎让我的读者工作了!我只需要在命名管道上检查EOF时需要一些帮助 . 好的,所以我打开一个(好多个)命名管道,如下所示: fds[j].fd = open(pipeNameo, O_RDWR) ; // storing it into my file descriptor array 然后我轮询命名管道以查看...

热门问题