gpt4 book ai didi

c - execv 的缓冲区大小

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

我有一项大学作业,我需要从管道中读取 bash 命令并执行该命令。我正在考虑使用 execv*,因为我可以通过以空格作为分隔符来创建缓冲区。问题是我不能使用 STL 库,而且我不知道应该如何创建这个缓冲区,因为这个缓冲区的大小是可变的。有什么建议么?提前致谢

最佳答案

如果你只执行一个管道命令,如下所示,缓冲区大小 30 就足够了,甚至更多

ls -l | wc -l

但是你可以支持多个管道命令,你会得到一个像下面这样的命令,你的缓冲区大小必须足够了

cat index.html  | grep ".com" | grep ".splunk." | cut -d "<" -f2  | cut    -d ">" -f1 | grep ":" | cut -d":" -f2  |  cut -d "/" -f3 | cut -d " " -f1 |  grep ".splunk." | cut -d '"' -f1  | sort | uniq 

你的缓冲区大小应该是 100,我为像你这样的操作系统项目选择了 100,我们实现了一个终端,它支持几乎所有的东西,多管道,重定向例如......

此外,我使用了如下的execvp,

 execvp(args[0], &args[0]);

关于c - execv 的缓冲区大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43398170/

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