Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1843960
  • 博文数量: 323
  • 博客积分: 5970
  • 博客等级: 大校
  • 技术积分: 2764
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-03 23:13
文章分类

全部博文(323)

文章存档

2018年(2)

2017年(11)

2016年(10)

2015年(27)

2014年(2)

2013年(30)

2012年(197)

2011年(44)

分类: C/C++

2012-02-28 19:08:38

C语言getpid函数简介  
函数功能:取得进程识别码
  相关函数:fork,kill,getpid
  头文件:旧版本:unistd.h,在VC++6.0下可以用
  函数原型:旧的原型为pid_t getpid(void);,推荐使用int _getpid( void );这种形式。注意,名第一个字符是下划线。
  函数说明:函数用来取得目前进程的进程识别码,许多程序利用取到的此值来建立,以避免临时文件相同带来的问题。
  返回值:目前进程的进程
  fork – 创建新进程;exit – 终止进程;exec – 执行一个wait – 将父进程挂起,等待子进程终止;getpid – 获取当前进程的PID;nice – 改变进程的优先
程序示例
  示例一:[1]
  #include
  #include
  int main( void )
  {
  /* If run froom command line, shows different ID for
  * command line than for operating system shell.
  */
  printf( "Process id: %d\n", _getpid() );
  }
  示例二:
  #include
  main()
  {
  printf(“pid=%d\n”,getpid());
  }
  执行:
  pid=1494 /*每次执行结果都不一定相同*/
 
 
=====================================================
获取当前进程的ID很简单,一种方法是调用GetCurrentThreadId()函数即可;还有一处更简单的哈,就是在你创建进程的时候就知道了:如 m_hThread = ::CreateThread(NULL, 0, MyThreadProc, this, 0, &m_threadID);//最后一个参数就是线程ID 另外,你想出现的是交错的顺序也很简单,就是做好互斥工作就是了,在线程的相应位置调用WaitForSingleObject();不要忘了解锁即可,我是用SetEvent();最好后面加上Sleep(10);这样看到的效果就更明显了!
 
GetCurrentThreadId
函数状态: 翻译/整理完成 ,建设者:阵雨 ,最新更新时间: 2004-10-17 5:38:16

函数功能描述:该函数返回当前线程的ID

函数原型
DWORD GetCurrentThreadId(VOID)

参数
    该函数没有参数
返回值
    返回值是当前线程的ID
备注[该处可以加上自己的使用经验]
    线程ID是线程在系统全局范围内的唯一标示。

使用环境[包括适合WINDOWS的版本、所需头文件、所需链接库]
Windows NT: 要求3.1或更高版本
Windows: 要求windows 95或更高版本
Windows CE: 要求1.0或更高版本。
头文件 winbase.h.
库文件 kernel32.lib

示例代码段
              char sztmp[256];
              DWORD dwThreadId=GetCurrentThreadId();
              wsprintf(sztmp,"当前线程ID为:%.8X",dwThreadId);
              
阅读(5772) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

新手来鸟2012-03-02 03:00:25

恩,调用GetCurrentThreadId()函数就挺简单的哈!