我在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'是否返回一個非空指針? –