在c(LINUX / UNIX)中模拟“ cat>”命令

问题描述 投票:0回答:1

我需要在exec系列中使用c来模仿命令:“ cat>”。

我找不到方法,因为它无法识别符号'>',我已经尝试使用execlp,但也许我的语法是错误的。

感谢您的帮助!赞赏。

c shell unix command
1个回答
0
投票

命令是cat>由外壳程序解释,将命令的标准输出重定向到特定文件。

因此,您需要将正在运行cat的进程的stdout(文件描述符1)连接到文件:

/* emulating `cat >file` */
int fd = open("file", …);
/* use our own fd 1 */
dup2(fd, 1);
close(fd);
/* with new stdout, exec `cat` */
exec("cat");
© www.soinside.com 2019 - 2024. All rights reserved.