gpt4 book ai didi

c - C 中的 Tee 函数调用不起作用而不是 tee 命令

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:32:47 26 4
gpt4 key购买 nike

您好,我一直在用 C 编写一个 linux shell。我想将我的输出重定向到文件和终端,我发现 tee 是可行的方法。我去了 tee 的 linux 手册页,发现 tee 可以用作函数调用以在 C 程序中调用。所以我写了

int size =tee(pipeends[1], 1,INT_MAX,SPLICE_F_NONBLOCK);

但这根本行不通。它说

implicit declaration of function ‘tee’ [-Wimplicit-function-declaration] size =tee(pipeends[1], 1,INT_MAX,SPLICE_F_NONBLOCK);

我在互联网上搜索了很多,它返回的所有内容都是如何在终端中使用 tee 命令,我知道这是通过使用 tee 。但我想在程序中对其进行编码,而不是让用户明确输入。我添加了头文件:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <time.h>
#include <sys/stat.h>
#include< fcntl.h>

作为我的 linux shell 代码的一部分。我不知道 tee 是否使用其他一些头文件,但我一无所知。

最佳答案

The manual page给出了必要的步骤:

#define _GNU_SOURCE         /* See feature_test_macros(7) */
#include <fcntl.h>

这将引入一个声明,即:

ssize_t tee(int fd_in, int fd_out, size_t len, unsigned int flags);

因此,您应该能够根据该信息编写程序来设置发球台。请注意,该调用是特定于 Linux 的,这不是标准 C(也不是 POSIX,Linux 通常遵守的 Unix 标准)函数。

关于c - C 中的 Tee 函数调用不起作用而不是 tee 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54707530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com