gpt4 book ai didi

c - strcpy() 出现段错误(核心转储)错误(可疑)

转载 作者:行者123 更新时间:2023-11-30 20:15:35 26 4
gpt4 key购买 nike

我在尝试解决这段短代码中的运行时段错误时遇到了麻烦。我怀疑这与代码中使用 system() 和 strcpy() 有关,但由于我没有遇到此类错误的经验,所以我不确定该怎么做,而且到目前为止我还没有找到很多有用的页面。

代码:

#include <stdio.h>
#include <string.h>
int main(){
char command[31], string[128];
strcpy(string, (char *)system("grep -Po '(?<=testString\\s)\\S+' File"));
string[strlen(string)] = '\0';
printf("%s", string);
return 0;
}

我使用GCC 4.7.3来编译程序。我真的非常感谢任何有关这方面的帮助。

最佳答案

system 不返回 char *,而是返回 int。使用其返回值作为字符串 - char * - 很可能会给您带来段错误。

int system(const char *command);

RETURN VALUE The value returned is -1 on error (e.g. fork(2) failed), and the return status of the command otherwise. This latter return status is in the format specified in wait(2). Thus, the exit code of the command will be WEXITSTATUS(status). In case /bin/sh could not be executed, the exit status will be that of a command that does exit(127).

关于c - strcpy() 出现段错误(核心转储)错误(可疑),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18612202/

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