c - 在 linux 中将串行设备的 i/o 重定向到标准 i/o 的 api 是什么

标签 c linux vxworks

我正在尝试将 Vxworks 应用程序移植到 Linux。为了将其中一个串行设备的 i/o 重定向到标准 i/o,他们使用 ioTaskStdSet();在 vxworks 中。 但是我无法像 as 那样在 linux 中找到 api。只有复制设备在 linux 中可用,但在我的应用程序中也不起作用。

谁能帮我解决这个问题?

最佳答案

作为@Ignacio提到的 dup2 正是用于此目的。例如这个程序将 stdout 重定向到“echo”文件:

#include <fcntl.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
    int fd = open("echo", O_RDWR | O_CREAT, 00644);
    if(fd == -1)
        return 1;

    if(dup2(fd, 1) == -1)
        return 1;
    close(fd);

    system("echo Hi!");
    return 0;
}

关于c - 在 linux 中将串行设备的 i/o 重定向到标准 i/o 的 api 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45728040/

相关文章:

c# - P/调用 const char 指针和 int 引用

c - 先进先出实现

c - 如何管理 C 函数中的任意参数

linux - Alpine apk : List all available package versions

linux - Linux 中 NUMA 节点测量缓存未命中/命中的工具?

vxworks - 如何指定 RTP 在 VxWorks 中可以使用的最大堆量?

c++ - VXWORKS 模拟器限制?

c - 将一个信号量分配给另一个信号量

c - 仅循环迭代一半元素

GTK+ 的 C 编码(简单案例)