我怀疑如何在C中执行一个exec任务。应该如何传递参数(例如:3,+,2)?它会用于管道吗?或者由argv尽管是int?而且,如果这个执行是由孩子抛出的,那么父母是否会从管道中读取该值? 谢谢!execvp(“/ usr/bin/bc”,arg,env)
-1
A
回答
0
相关问题
- 1. 等效的--env文件为build-arg?
- 2. Dockerfile中的shell表达式的缺省值ARG和ENV
- 3. 差(ARG)和obj.func.bind(OBJ,ARG)
- 4. execvp参数
- 5. execvp段错误
- 6. 从ARGV到execvp
- 7. 如何在单行上输出execvp?
- 8. 如何使execvp()处理多个参数?
- 9. -exec arg
- 10. 从execvp段错误
- 11. 与execvp()有问题
- 12. 阵营ENV变量与.ENV
- 13. 使用fork制作简单的unix外壳,execvp
- 14. 使用execv()和PATH env变量
- 15. 与execvp错误的地址错误
- 16. javax.tools.JavaCompiler“arguments”arg
- 17. 从c中的char数组向execvp添加参数
- 18. C - execvp()进程间通信
- 19. execvp()ls no such file or directory
- 20. execvp没有得到说法
- 21. 重定向execvp路径
- 22. 插入未知命令execvp()
- 23. execvp不读取整个argv []?
- 24. execvp将不执行命令
- 25. execvp叉:等待标准输出
- 26. 在execvp节点-GYP配置错误()
- 27. 使用luajit ffi为execvp将变量args转换为char * const []
- 28. 由PHP覆盖的Python ENV文件ENV
- 29. 主进程 - > pthread - > fork + execvp
- 30. python arg values from php
由于'bc'需要文件名作为参数,你要么必须为'3 + 2'安排发送到它的标准输入(pipe?),或者将'3 + 2'写入文件并告诉'bc'处理文件(并在稍后删除文件)。 'execvp()'系统调用只需要两个参数,通常是'execvp(argv [0],argv)',用于某些以NULL结尾的字符串向量。 'argv [0]'的值将是'bc' - 如果指定了路径,那么使用'execvp()'而不是'execv()'没有意义。 –
非常感谢! 我把这个: sprintf(str1,“%d”,num1); \t \t sprintf(strop,“%d”,operando); \t \t sprintf(str2,“%d”,num2); \t \t strcat(str,str1); \t \t strcat(str,strop); \t \t strcat(str,str2); \t \t char * argumentsos [] = {“bc”,str}; \t \t execvp(“/ usr/bin/bc”,argumentsos); 会吗?在我尝试通过一个管道的值3 + 2之前,我还尝试创建一个辅助文件,在那里我写了3 + 2并将该文件传递给了BC的执行程序....在任何情况下,我都设法恢复父级结果的值。有任何想法吗?谢谢。 – ssuarez
@ssuarez:在这个页面的右边,你会看到一个标有**“Related”**的部分,你可能会发现这个[question](https://stackoverflow.com/questions/40995172 /写入-A-术语到BC-通管式-C)。查看接受的答案。查看相关问题总是很好:) – rici