0

意味のないエラーが発生しています。私は次のコードを持っています -

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

4

1 に答える 1

0

多くの人が NetBeans と Code::Blocks でかなり長い間このバグを経験していることを発見しました。Eclipse でコードを試してみましたが、問題なく動作します。したがって、Linux での C 開発に NetBeans を使用しないことをお勧めします。

于 2013-04-02T15:13:41.843 に答える