意味のないエラーが発生しています。私は次のコードを持っています -
#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);
このエラーはなくなります。しかし、特に私のメインメソッドが空白であるため、この行が失敗する理由がわかりません。