您的位置:首页 > 其它

windwos中的进程

2016-10-24 23:26 330 查看
进程

  进程 就是一个容器,该容器是程序

  

  进程的主线程开始意味着程序执行.

  

进程的特点

   每个进程都有ID号

   每个进程都有自己的地址空间

获取进程信息

   GetCurrentProcessId - 获取当前进程的ID

   GetCurrentProcess - 获取当前进程的句柄,(获取的是一个伪句柄)

进程环境信息

   1. 环境信息

   void* GetEnviormentStrings();  返回进程信息.

   2. 释放

   FreeEnvironmentStrings();  // 释放进程信息

环境变量

   1.设置(增加)环境

     SetEnvironmentVariable(
Name,   //环境变量名
Value,  // 环境变量值
)

   2. 获取环境变量的值

     DWORD GetEnvironmentVariable(
 
  LPWSTR lpName,  // 环境变量名
  LPTSTR lpBuffer,  // 接收环境变量的值
  DWORD nSize    // buff的大小
  
)

创建进程

   CreateProcess() - 目前主推 类似于linux C 中的 vfork+exec

   

   

   BOOL CreateProcess(

  LPCTSTR lpApplicationName,                 // 应用程序路径

  LPTSTR lpCommandLine,                      // 命令行

  LPSECURITY_ATTRIBUTES lpProcessAttributes, // 进程安全属性

  LPSECURITY_ATTRIBUTES lpThreadAttributes,  // 线程安全属性

  BOOL bInheritHandles,                      // 继承标识

  DWORD dwCreationFlags,                     // 创建方式

  LPVOID lpEnvironment,                      // 环境信息

  LPCTSTR lpCurrentDirectory,                // 当前目录

  LPSTARTUPINFO lpStartupInfo,               // 起始信息

  LPPROCESS_INFORMATION lpProcessInformation // 进程信息

  );

  

结束进程

   void ExitProcess(UINT uExitCode) // 

   BOOL TerminateProcess(

    HANDLE hProcess, // handle to the process.
UINT uExitCode  // exit code for the process.

   )

进程间的等候

  

    DWORD WaitForSingleObject(
 HANDLE hHandle,  // 句柄
 DWORD dwMilliseconds // 等候时间
);
该函数为阻塞函数,等候句柄的信号,只在句柄有信号或超出等候时间,才会结束等候,
进程执行期间进程句柄无信号,结束时进程句柄无信号.
如果dwMillseconds是INFINTE则一直等待该hAndle有信号

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