问题标签 [execvp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6169 浏览

c - execvp - ls: fts_open: 没有这样的文件或目录

我目前正在努力解决这个错误。我正在编写一个 shell 模拟器,使用 fork() 执行使用 execvp(); 的命令。几乎我尝试解析到我的 shell 的每个命令都运行良好,除了没有参数的 ls 。如果我尝试执行 ls -lah,一切正常,但简单的 ls 不会,收到以下错误:

这是我的代码片段:(只是必不可少的)

这是 ls 的输出:

如您所见,args[0] 包含 ls,args[1] 为空,因为没有参数,args[1] 的长度为 0,但我不断收到错误消息。

知道它可能是什么吗?

编辑:

感谢 Jonathan Leffler 发现它:(另外,这似乎只是 Mac 上的一个问题)

关键是 args[1] 并不是真的为空,因此操作系统会尝试打开 '' 文件,该文件显然不存在,并且从外观上看,无法创建,因为它不是真的是一个名字。

所以,这就是我所做的:检查 args[1] 的 len。如果为 0,则将其设置为 NULL。(只是释放内存并没有真正帮助)

0 投票
3 回答
2747 浏览

c++ - C++ const char* 到 const char* const

我目前正在为我的班级写一个作业,该作业应该充当一个非常基本的外壳。我快完成了,但我遇到了一个问题,execvp我的参数字符数组。这是我的代码的一个简单片段。

这被...利用

我的错误是

我知道问题是我的字符数组没有充满常量数据,所以我基本上需要从const char*to const char* const。我读了一些关于的东西const_cast,但我不确定这是否是我需要做的。

如果你好心,你能帮我让我的字符数组数组被那个函数正确接受吗?如果您需要我发布更多代码,请告诉我。

谢谢

0 投票
2 回答
2382 浏览

linux - How to make find -name to return error if no file found

I have tried really hard but could not figure out a way to print an error if

find -name \"filename"

does not find any file. The code I am using so far is as follows:

But I can't print my print statement because find -name \"filename" never returns an error.

0 投票
1 回答
160 浏览

c - exevp skips over all code until wait call in c

I am trying to execute a file using fork and execvp, however I am encountering some errors. I have not found any solutions to the problem I am having here online, since I don't get any errors from my exevp nor does it run. Here is my code:

When I try to run this code it only outputs the "IN CHILD BEFORE EXCEPTION" and "IN PARENT" it doesn't print out any of the printf statements in between why does it do that. The file I am trying to run a simple executable that prints "hello world" to stdout.

Thanks for any help

0 投票
2 回答
1458 浏览

c - C 编程 2 个管道

我想在我的程序中设置 2 个管道。我有 1 个管道工作正常,但我不知道在哪里放置第二个管道。

我的设置的伪代码如下所示,

这是带花括号的,对此感到抱歉

第二个管道的位置错误或代码完全错误。

有什么建议么?

0 投票
1 回答
768 浏览

c - execvp 不会执行命令

我正在尝试运行一段将执行一些 UNIX 命令的代码,这些命令存储在数组 lineArray 中,例如:lineArray = {"ls -l", "ls", "pwd", NULL};

问题是这个代码只会打印出数组中的第一个命令,即使我在调试时看到我的函数根据 execvp MAN 正确解析了命令及其参数。

任何形式的帮助将不胜感激。

}

0 投票
1 回答
462 浏览

c - 将字符添加到现有的字符/字符指针数组?

目前我正在阅读一行字符串并对其进行解析。我正在使用以下变量来执行此操作:char **parsedchar *parsed_arguments[64]. 这是我用来解析它的代码:

那部分很好而且很花哨,但是当我尝试添加到 parsed_arguments 时出现了我的问题。我想要完成的是从文件中读取文本,将其放入char buffer[],标记,并将其添加到,parsed_arguments以便我可以将这些参数传递给使用execvp. 到目前为止,我能够阅读文本并将其放入我的缓冲区中,我什至尝试过对其进行标记,但最后一部分让我感到困惑。这里有更多代码详细说明我正在做的事情:

0 投票
0 回答
1222 浏览

c - C 进程间通信

我正在尝试编写一个程序,它需要 n 个进程并将每个父进程的输出传递给子进程的输入。

我想问题在于关闭管道。

输入的一个示例是: ./a.out "ps ufax" "grep color" "sort -n" 预期输出:colord 2013 0.0 0.1 279216 4580 ? Sl 08:01 0:00 /usr/lib/x86_64-linux-gnu/colord/colord zabsa90 2525 0.0 0.0 9392 920 pts/2 S+ 08:26 0:00_grep 颜色

谢谢 :)

0 投票
0 回答
92 浏览

c - 分叉的 execvp 不返回,父级无限期等待

带有一些注释的代码:http: //pastebin.com/nrXayHx5

我在很多文件和目录上重复执行命令“du”,它适用于我的很多输入,但是有一个特定的目录没有,我检查了它是哪个目录,并且字符串格式正确。我注意到使用该目录执行 du 的输出特别长,这可能是 execvp 不返回的原因吗?也许管道已满?

我很感激任何帮助。谢谢你。

0 投票
1 回答
997 浏览

c - execvp 和 wait() 后无法重新获得控制权

我正在编写一个必须执行我解析的命令的小 shell。

f 是这样的 char**:[ls][-la] p 是一样的,像这样使用:[wc] 所以我尝试在 wc 中使用管道 ls -la。我的问题是,当我执行适用于管道的“ls -la | wc && date”时,我的 minishell 被关闭并且它不执行“date”。我使用了等待功能来等待它完成,但什么也没做。看起来它在第二个 execvp 之后被卡住并退出。

我的数组以 NULL 结尾。ls -la | wc 执行得很好,但在此之后我又回到了 bash。我已经尝试过 execlp 和 execl 但我认为这不是问题,因为我需要我的第一个参数(ls + -la)的选项。请问你能帮帮我吗 ?提前致谢 :)