gpt4 book ai didi

c - 我应该将什么作为结束字符传递给 grep 等系统命令?

转载 作者:太空宇宙 更新时间:2023-11-04 03:24:37 25 4
gpt4 key购买 nike

void pipe_execute(char all[][MAX_SIZE],int i,int n)
{
if(i==n)
{
execute(all[i-1]);
}
else
{
int fd[2];
char cmd1[100];
pipe(fd);
pid_t pid = fork();
if(pid==0)
{
dup2(fd[1],fileno(stdout));
execute(all[i-1]);
}
else
{
wait(NULL);
dup2(fd[0],fileno(stdin));
pipe_execute(all,i+1,n);
}
}
}
void execute(char cmd[])
{
char *a = strtok(cmd," ");
char *b = strtok(NULL," ");
pid_t pid = fork();

if(pid==0)
execlp(a,a,b,(char*)NULL);
else
{
wait(NULL);
}
}

在这个程序中假设
全部[0] = "ls"
all[1] = "grep aa"
我=1
n=2

grep 的执行在“grep a”之后没有停止,可能是在等待一些特殊字符,我已经尝试过所有像'\0','\n',EOF 等但它没有用。我应该发送什么来结束 grep?

最佳答案

它不会停止,因为它正在等待输入。关闭它的 stdin 让它退出。如果它附加到 tty,请向它发送 Ctrl-D。另一种选择是用适当的信号将其杀死,但我认为您不希望这样。

关于c - 我应该将什么作为结束字符传递给 grep 等系统命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42218927/

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