您的位置:首页 > 其它

根据当前进程号,获取进程下线程数目

2014-04-02 13:56 429 查看
/*根据当前进程号,获取进程下线程数目*/
int get_max_thread_count()
{
char filename[FILENAME_MAX];
snprintf(filename, sizeof(filename)-1, "/proc/%u/stat", getpid());

FILE* fp = fopen(filename, "r");
if (NULL == fp) return -1;

char line[LINE_MAX];
int filed_number = 38;
process_info_t process_info;
char* linep = fgets(line, sizeof(line)-1, fp);

if (NULL == linep) return -1;
sscanf(line, "%d%s%s%d%d"
"%d%d%d%u%lu"
"%lu%lu%lu%lu%lu"
"%ld%ld%ld%ld%ld"
"%ld%lld%lu%ld%lu"
"%lu%lu%lu%lu%lu"
"%lu%lu%lu%lu%lu"
"%lu%d%d"
/** 01 */ ,&process_info.pid
/** 02 */ , process_info.comm
/** 03 */ ,&process_info.state
/** 04 */ ,&process_info.ppid
/** 05 */ ,&process_info.pgrp
/** 06 */ ,&process_info.session
/** 07 */ ,&process_info.tty_nr
/** 08 */ ,&process_info.tpgid
/** 09 */ ,&process_info.flags
/** 10 */ ,&process_info.minflt
/** 11 */ ,&process_info.cminflt
/** 12 */ ,&process_info.majflt
/** 13 */ ,&process_info.cmajflt
/** 14 */ ,&process_info.utime
/** 15 */ ,&process_info.stime
/** 16 */ ,&process_info.cutime
/** 17 */ ,&process_info.cstime
/** 18 */ ,&process_info.priority
/** 19 */ ,&process_info.nice
/** 20 */ ,&process_info.num_threads
/** 21 */ ,&process_info.itrealvalue
/** 22 */ ,&process_info.starttime
/** 23 */ ,&process_info.vsize
/** 24 */ ,&process_info.rss
/** 25 */ ,&process_info.rlim
/** 26 */ ,&process_info.startcode
/** 27 */ ,&process_info.endcode
/** 28 */ ,&process_info.startstack
/** 29 */ ,&process_info.kstkesp
/** 30 */ ,&process_info.kstkeip
/** 31 */ ,&process_info.signal
/** 32 */ ,&process_info.blocked
/** 33 */ ,&process_info.sigignore
/** 34 */ ,&process_info.sigcatch
/** 35 */ ,&process_info.nswap
/** 36 */ ,&process_info.cnswap
/** 37 */ ,&process_info.exit_signal
/** 38 */ ,&process_info.processor);

fclose(fp);
return process_info.num_threads;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: