-1
proc // statusからプロセス情報を読み込もうとしていますが、プロセスが実行中であるかどうかを確認するつもりです。私は "名前:"で始まる行をprevという文字列に保存します。プロセスが実行されている場合、このprevで名前を表示する必要がありますが、prevは別の値で上書きされます。私のコードは `プロセス情報の読み込みproc/<pid> /ステータス
char path[40], line[100], *p;
FILE* statusf;
snprintf(path, 40, "/proc/%ld/status", tgid);
statusf = fopen(path, "r");
if(!statusf)
return;
char * prev;
while(fgets(line, 100, statusf)) {
if (strncmp(line,"Name:", 5) == 0){
prev = line;
continue;
}
if(strncmp(line, "State:", 6) == 0){
// Ignore "State:" and whitespace
p = line + 7;
while(isspace(*p)) ++p;
if(p[strlen(p)-1] == '\n'){
p[strlen(p)-1] = '\0';
}
}
if (!strcmp(p,"R (running)")){
prev = prev + 6;
while(isspace(*prev)) ++prev;
if(prev[strlen(prev)-1] == '\n'){
prev[strlen(prev)-1] = '\0';
}
printf("%s",prev);
}
break;
}
fclose(statusf);
} `
何をお勧めしますか? – Joey12
'char line [100]、prev [100]; if(match){strcpy(prev、line);} ' –