问题标签 [file-descriptor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
567 浏览

c - 文件描述符的代码问题。C (Linux)

我编写的代码理想情况下应该从一个文档中获取数据,对其进行加密并将其保存在另一个文档中。

但是当我尝试执行代码时,它不会将加密数据放入新文件中。它只是让它空白。有人请找出代码中缺少的内容。我试过了,但我想不通。

我认为读/写函数有问题,或者我执行的 do-while 循环不正确。

0 投票
4 回答
346 浏览

c - 为什么以下代码会引发 SegFault。c(Linux)

这是一个将反转文档数据并将其保存在同一文档本身中的代码。但是我遇到了分段错误。请帮忙,我不知道为什么它会给出分段错误。

EDIT1 我尝试添加:

但现在它只是一次又一次地复制文档中的字符,而不是反转它们。

0 投票
1 回答
335 浏览

c - 如何防止标准输入流在程序启动时从关联的文件描述符中读取数据?

我正在使用 select() 调用来检测程序主循环中是否存在输入。这使我使用原始文件描述符(0)而不是标准输入。

在这种模式下工作时,我注意到我的软件在开始时偶尔会丢失大量输入。我怀疑 stdin 在程序启动时会消耗其中的一些。有没有办法防止标准输入的这种行为或以其他方式获取整个输入数据?

只有在程序启动的那一刻,标准输入上的一些数据才能再现所描述的效果。我的可执行文件应该被用作 xinetd 服务,它总是在开始时有一些输入。

标准输入的读取方式如下:

0 投票
7 回答
27420 浏览

c++ - 如何遍历 fd_set

我想知道是否有一种简单的方法可以遍历 fd_set?我想这样做的原因是不必遍历所有连接的套接字,因为 select() 将这些 fd_set 更改为仅包含我感兴趣的那些。我也知道,使用不打算直接访问的类型的实现通常是一个坏主意,因为它可能因不同的系统而异。但是,我需要一些方法来做到这一点,而且我的想法已经不多了。所以,我的问题是:

如何遍历 fd_set?如果这是一个非常糟糕的做法,除了遍历所有连接的套接字之外,还有其他方法可以解决我的“问题”吗?

谢谢

0 投票
0 回答
476 浏览

c++ - DIR* 如何获得 EBADF 错误?

我有一些我继承的代码,它是用于迭代、访问目录内容并使用 boost::filesystem::path 的类的一部分。代码部分内容如下:

我遇到的问题是不可重现的 ASSERT,其中 errno == EBADF in handle_read_error()。现在检查代码,在我看来,在构造函数中,m_directory_stream 已设置,没有其他任何东西触及它。它不是 NULL 或者构造函数会调用 handle_open_error() 并且不会出现这种情况。因此,在构建时,m_directory_stream 是有效的,并且在打开时没有发生错误。然而,一段时间后,unsafe_increment() 被调用,也许是在构造函数的后面调用,此时 DIR 对象现在是 EBADF,我们在堆栈中得到断言失败。

以下是检测到故障的机器的信息(注意应用程序是单线程的):

当我们持有它时,文件描述符怎么会变坏?这是 dirent.h 接口的已知问题吗?

请建议如何使此代码更好并避免此不可重现的问题。

0 投票
2 回答
3625 浏览

python - Python 持久套接字连接

我是 python 新手 :) 我想创建持久套接字。我尝试使用文件描述符来做到这一点。我尝试的是:

  1. 打开一个套接字套接字连接s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

  2. 获取它的文件描述符编号fd = s.fileno()

  3. 以 I/O 方式打开文件描述符os.open(fd)

但我明白了OSError: [Errno 9] Bad file descriptor

我说我是 python 新手,也许我对实现有误。但我尝试了一个更简单的例子os.close(s.fileno()),我得到了同样的错误OSError: [Errno 9] Bad file descriptor

我找到了一个用 ruby​​ 编写的示例,并对其进行了测试,它可以工作。如何在 Ruby 中的 Unix 上创建持久网络套接字?

谁能帮我把它写进python,我想要实现的是:socket_start.py google.com(他会打印fd号) sleep 10 socket_write.py fd_number 'something' sleep 10 socket_read.py fd_number 1024

我希望你明白我想做什么。谢谢指教!


在您回复后,我尝试了下一个代码:

1

2

错误是OSError: [Errno 9] Bad file descriptor

我确定问题出在哪里(我是 php 开发人员)。我认为和 php 一样,python 在关闭脚本后会删除垃圾。如何在 python 中解决这个问题?

0 投票
1 回答
1920 浏览

python - 使用文件描述符在进程之间进行通信

我有以下python代码:

我怎样才能重写它,使它不会使用Popenand cat?我需要一种方法从在交互式 shell 中运行的 shell 函数传递数据,该函数不会与其他函数创建的数据混合(所以我不能使用 stdout 或 stderr)。

0 投票
3 回答
1251 浏览

sockets - java数据报套接字的文件描述符

如何获取 Java 数据报套接字的文件描述符?我在网上搜索没有任何成功。

斯里尼

0 投票
4 回答
3284 浏览

c - 为什么打开使我的文件描述符为0?

我正在开发一个使用管道和分叉的程序,并且需要将写入端更改为输出文件。但是当我打开一个文件时,文件描述符为 0,这通常是标准输入,但我认为这是我的一些问题的原因。这是我的代码

谁能告诉我为什么是0?或者如何解决?

0 投票
1 回答
1467 浏览

file-descriptor - stdin 文件描述符指向的文件是不同进程的同一个文件吗?

我有一个问题。按照惯例,unix 为每个进程的 stdin、stdout、stderr 关联文件描述符 0、1、2。文件(例如标准输入指向的文件)是否由不同进程共享?如果是共享的,当我们打开两个 shell 向这两个 shell 输入一些输入时,操作系统如何管理共享文件?