execv 的缓冲区大小
Buffer Size for execv
我有一项大学作业,我需要从管道读取 bash 命令并执行此命令。我正在考虑使用 execv*,因为我可以通过使用 space 作为分隔符来创建缓冲区。问题是我不能使用 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]);
我有一项大学作业,我需要从管道读取 bash 命令并执行此命令。我正在考虑使用 execv*,因为我可以通过使用 space 作为分隔符来创建缓冲区。问题是我不能使用 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]);