gpt4 book ai didi

c - C 中的字符串操作和系统调用

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

我是 C 业余爱好者,我在 C 中操作字符串时遇到问题。目标是将当前 pid 添加到基本字符串,然后使用 system(系统调用)。我有以下内容:

char system_call[100] = "top -p "
char pid_string[30];

//quite a bit of other code

int main(int argc, char *argv[])
{
pid_t pid = getpid();
sprintf(pid_string,"%d",pid);
strcat(system_call,pid_string);

printf(system_call); //prints what I expect; something like 'top -p 5580'
system(system_call); //doesn't work
}

system 调用简单地给出了 sh: system: not found。我相信精通 C 的人会立即知道问题所在。我想也许 C 中字符串后面的尾随 0 与它有关,但我在 C 中太糟糕了,无法识别它或知道如何处理它。我也试过 system("%s",system_call)system 只接受一个参数。我的内存分配有问题吗?感谢任何见解。

最佳答案

在 sprintf 中使用之前,变量 pid 没有赋值。

关于c - C 中的字符串操作和系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15936786/

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