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


     1 /*根据当前进程号,获取进程下线程数目*/
     2 int get_max_thread_count()
     3 {
     4     char filename[FILENAME_MAX];
     5     snprintf(filename, sizeof(filename)-1, "/proc/%u/stat", getpid());
     6 
     7     FILE* fp = fopen(filename, "r");
     8     if (NULL == fp) return -1;
     9     
    10 
    11     char line[LINE_MAX];
    12     int filed_number = 38;
    13     process_info_t process_info;
    14     char* linep = fgets(line, sizeof(line)-1, fp);
    15 
    16     if (NULL == linep) return -1;
    17     sscanf(line, "%d%s%s%d%d"
    18                          "%d%d%d%u%lu"
    19                          "%lu%lu%lu%lu%lu"
    20                          "%ld%ld%ld%ld%ld"
    21                          "%ld%lld%lu%ld%lu"
    22                          "%lu%lu%lu%lu%lu"
    23                          "%lu%lu%lu%lu%lu"
    24                          "%lu%d%d"
    25               /** 01 */ ,&process_info.pid
    26               /** 02 */ , process_info.comm
    27               /** 03 */ ,&process_info.state
    28               /** 04 */ ,&process_info.ppid
    29               /** 05 */ ,&process_info.pgrp
    30               /** 06 */ ,&process_info.session
    31               /** 07 */ ,&process_info.tty_nr
    32               /** 08 */ ,&process_info.tpgid
    33               /** 09 */ ,&process_info.flags
    34               /** 10 */ ,&process_info.minflt
    35               /** 11 */ ,&process_info.cminflt
    36               /** 12 */ ,&process_info.majflt
    37               /** 13 */ ,&process_info.cmajflt
    38               /** 14 */ ,&process_info.utime
    39               /** 15 */ ,&process_info.stime
    40               /** 16 */ ,&process_info.cutime
    41               /** 17 */ ,&process_info.cstime
    42               /** 18 */ ,&process_info.priority
    43               /** 19 */ ,&process_info.nice
    44               /** 20 */ ,&process_info.num_threads
    45               /** 21 */ ,&process_info.itrealvalue
    46               /** 22 */ ,&process_info.starttime
    47               /** 23 */ ,&process_info.vsize
    48               /** 24 */ ,&process_info.rss
    49               /** 25 */ ,&process_info.rlim
    50               /** 26 */ ,&process_info.startcode
    51               /** 27 */ ,&process_info.endcode
    52               /** 28 */ ,&process_info.startstack
    53               /** 29 */ ,&process_info.kstkesp
    54               /** 30 */ ,&process_info.kstkeip
    55               /** 31 */ ,&process_info.signal
    56               /** 32 */ ,&process_info.blocked
    57               /** 33 */ ,&process_info.sigignore
    58               /** 34 */ ,&process_info.sigcatch
    59               /** 35 */ ,&process_info.nswap
    60               /** 36 */ ,&process_info.cnswap
    61               /** 37 */ ,&process_info.exit_signal
    62               /** 38 */ ,&process_info.processor);
    63     
    64     
    65     fclose(fp);
    66     return process_info.num_threads;
    67 }
  • 相关阅读:
    javascript 读取内联之外的样式(style、currentStyle、getComputedStyle区别介绍) (转载)
    JS笔记2 --定义对象
    JS笔记1
    Chrome 中的 JavaScript 断点设置和调试技巧 (转载)
    屏蔽移动端浏览器的长按事件
    移除IOS下按钮的原生样式
    HTML5中的Range对象的研究(转载)
    js中的 window.location、document.location、document.URL 对像的区别(转载)
    html中插入flash代码详解(转载)
    关于获取各种浏览器可见窗口大小(转载)
  • 原文地址:https://www.cnblogs.com/mytech/p/3640539.html
Copyright © 2020-2023  润新知