10得票2回答
在两个文件描述符之间建立桥接

我有一个套接字,我正在对它进行select()操作,等待其他进程写入数据。一旦写入完成,我会读取这些数据,并将其写入另一个文件描述符中。我的问题是,是否有一种方式可以将套接字和文件描述符连接起来,以便在数据准备就绪时自动写入其他文件描述符中? 这样,我可以丢掉我正在使用的缓冲区,并省略系统中...

10得票4回答
如何将System命令的stderr重定向到stdout或文件中?

在使用 shell 命令 $ avrdude -c usbtiny 时,会将文本输出到 stderr。由于它不是 stdout,我不能通过像 head-less-more 等命令来读取它。我希望将文本输出到 stdout 或文件中。在 C 中如何实现?我已经尝试过通过我的上一个问题来解决这个问...

10得票1回答
如何确定一个打开的文件是套接字还是管道?

我想确定struct fdtable或struct file的哪个成员可以让我确定一个打开的文件是套接字还是管道。 我能找到的唯一途径是:struct file f ....; f.path->mnt->mnt_devname 这会返回挂载点处的设备名称,所有socket/pip...

10得票2回答
如何将子进程的标准输出重定向到文件?

我正在实现一个用 Rust 编写的 shell 中的 I/O 重定向。我通过使用来自 libc crate 的 unsafe 代码和原始文件描述符中的 pipe(),成功地在两个子进程之间进行了管道传输。 当我尝试将最后一个子进程的 stdout 重定向到一个我有权限的文件时,它失败了: ...

9得票1回答
理解lsof输出

对我来说,lsof似乎有重复的条目。 1:fs:java 19644 4961 abc mem REG 252,1 126331 118159613 abc.jar 1:fs:java 19644 4962 ...

9得票1回答
fopen函数是否会创建文件描述符?

查看fopen的手册,我无法得到这个问题的明确答案。 FILE *fopen(const char *path, const char *mode); 我理解 fopen 返回一个文件指针以便进行流操作,但是也会创建一个文件描述符吗?我想确保每个文件描述符都包含标志 FD_CLOEXEC...

9得票6回答
在Unix C++中将标准输出/错误重定向到文件 - 再次

我想要做什么 在c++中将stdout和stderr重定向到一个或多个文件 为什么需要这样做 我正在使用一个外部的、预编译的第三方库,它产生了大量的输出,我希望将其重定向到一个日志文件中,以保持控制台的清洁。 限制条件 兼容性不是问题,代码只会在Unix系统上运行。重定向不仅应影响c...

9得票2回答
如何访问已打开文件的文件描述符

是否有办法访问在c++中打开的文件的文件描述符?因此... #include <iostream> #include <fstream> using namespace std; int main() { ifstream inputFile( ...

9得票1回答
如何在OS X上使用clang从std::basic_ios获取文件描述符?

我正在将一些代码移植到Darwin OS X,这意味着我们需要从gcc编译器转换为clang编译器。 代码中有一个函数,始于2005年并在互联网上发布了几个版本。它提供了多个不同版本的GCC的功能,我已经删掉了除最后一个v3.4.0或更高版本之外的所有内容。该代码依赖于两个GCC特定的类:_...

9得票4回答
防止锁传播

在bash下进行锁定的一种简单而似乎可靠的方法是: exec 9>>lockfile flock 9 然而,Bash 众所周知地将此类 fd 锁传播到所有 fork 的子进程中,包括执行的程序等。 有没有办法告诉 Bash 不要复制 fd?很棒的是,锁附加到一个 fd 上,...