gpt4 book ai didi

无法使用 execl 列出特定目录

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

我正在制作一个 C 程序,该程序使用 execl 来执行 ls 命令来列出文件。如果在没有任何命令行参数的情况下调用程序,则会列出当前目录,如果用户将文件目录指定为命令行参数,则会列出该目录。

execl("/bin/ls", "ls", NULL); 可以很好地列出当前目录

execl(argv[1], "ls", NULL); 是我用于命令行参数的内容。我认为这在代码方面工作得很好,但是当我制作命令行参数时我无法获得正确的语法:

./a.out/test/ls

最佳答案

直接来自 execl 的手册页

The initial argument for these functions is the pathname of a file which is to be executed.

因此,如果您要运行的命令是ls,那么execl 的第一个参数应该是"/bin/ls"

execl 的第二个参数也应该是 "/bin/ls"。这是因为 execl 的第二个参数作为 argv[0] 传递给程序,而 argv[0] 是应该是程序的路径。

因此,只有从 execl 的第三个参数开始,您才真正开始将实际参数传递给命令。所以调用应该是这样的

execl( "/bin/ls", "/bin/ls", argv[1], NULL );

关于无法使用 execl 列出特定目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24048431/

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