私はCプログラミングの初心者で、ここではかなり簡単なコードを持っています。 コンパイルされますが実行されず、セグメンテーションフォルトが表示されます。私は間違っているかもしれない何時間も探していた。今私は、セグメンテーションフォールトが何を意味するのか、それはなぜ私の小さなコードに表示されるのか、かなり良いアイデアを持っています:C(初心者)のセグメンテーションフォールト
これは、指定されたパラメータのuser_idとgroup_idを表示することになっています。
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
#include <pwd.h>
int main(int argc, char *argv[]){
if(argc != 1){
printf("ERROR");
}
struct passwd str;
struct passwd *pointer = getpwnam(argv[1]);
str = *pointer;
printf("user: %d /ngroup: %d",str.pw_uid, str.pw_gid);
return 0;
}
'argv [1]'にアクセスする場合、 'argc'は'!= 1'ではなく '> 1'でなければなりません。また、 'if'でプログラムを終了する必要があります。 – mch
エラーがある場合は、プログラムの実行を停止しないでください。 – babon
'getpwnam'はnull以外のポインタを返しますか? –