今天看到的程序中有这样一段代码:
#ifndef _MSC_VER
#include <unistd.h>
#define GETPID getpid
#else
#include <process.h>
#define GETPID _getpid
#endif
...
/* set default seed for randomization */
seed = time(NULL) + GETPID();
之前查了资料了解了_MSC_VER,现在查了下getpid的相关。
函数名称:getpid
函数功能:取得进程识别码
相关函数: fork,kill,getpid
头文件: 旧版本:unistd.h,在VC++6.0下可以用process.h
函数原型: 旧的原型为pid_t getpid(void);,推荐使用int _getpid( void );这种形式。注意,函数名第一个字符是下划线。
函数说明:getpid函数用来取得目前进程的进程识别码,许多程序利用取到的此值来建立临时文件,以避免临时文件相同带来的问题。
返回值: 目前进程的进程识别码
相关函数说明:
fork – 创建新进程;
exit – 终止进程;
exec – 执行一个应用程;
wait – 将父进程挂起,等待子进程终止;
getpid – 获取当前进程的PID;
nice – 改变进程的优先
程序示例一:这是在VS2008上写的
运行:
这里,每次运行得到的id都不一定相同。
程序示例二:
在我的VS2008上编译不通过,就不给结果了~~