我收到一个没有意义的错误。我有以下代码 -
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <grp.h>
gid_t groupIdFromName(const char *name)
{
struct group *grp;
gid_t g;
char *endptr;
if (name == NULL || *name == '\0')
return -1;
g = strtol(name, &endptr, 10);
if (*endptr == '\0')
return g;
grp = getgrnam(name);
if (grp == NULL)
return -1;
return grp->gr_gid;
}
int main(int argc, char** argv) {
return (EXIT_SUCCESS);
}
我在Linux Mint中使用NetBeans,当我尝试并且我的程序构建没有问题时,当我尝试运行它时,我收到以下错误 -
Signal received: SIGSEGV (?) with sigcode ? (?)
From process: ?
如果我注释掉grp = getgrnam(name);
行,则此错误消失。但是我不明白为什么这条线会导致它失败,特别是因为我的主要方法是空白的。
答案 0 :(得分:0)
我发现很多人在NetBeans和Code :: Blocks中已经遇到过这个bug很长一段时间了。我在Eclipse中尝试了代码并且工作正常。所以不要在Linux上使用NetBeans for C开发是我的建议。