进程的环境变量
进程的环境快不过是进程地址空间中分配的一个内存快,环境快的格式如下:
VarName1=VarValue1\0
VarName2=VarValue2\0
VarName3=VarValue3\0
...
VarNameN=VarValueN\0
\0
注:等号的左右不忽略空格,此处于INI配置文件不同。
若要为win98初始化一组环境变量,需要修改autoexec.bat文件,设置SET为"SET VarNameN=VarValueN"的格式。
win2K中,用户登陆时,系统将创建一个外壳进程并将一组环境字符串与之关联。通过查看注册表中的两个
关键字,系统可以获得一组初始环境字符串。
第一个关键字包含一个适用于系统的所有环境变量的列表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manger\Environment
第二个关键字包含适用于当前登陆用户的所有环境变量列表:
HKEY_CURRENT_USER\Environment
通过环境变量窗口我们可以手动修改系统(只有AD可以)或当前用户的环境变量列表。可以用过HWND_BROADCAST
窗口消息通知进程更新环境块。
通常,子进程能继承一组与父进程相同的环境变量,但是,父进程能构控制子进程继承什么环境变量。
与环境变量相关的API:
DWORD GetEnvironmentVarible(PCTSTR, PTSTR, DWORD)查看环境变量是否存在,存在则得到其值,
否则返回0。
%A%表示可取代字符串
DWORD ExpandEnvironmentStrings(PCSTR, PSTR, DWROD)用于展开可取代字符串。
BOOL SetEnvironmentVarible(PCTSTR, PCTSTR)添加、删除(第二个参数NULL)、修改环境变量值。
进程错误模式UNIT SetErrorMode(UINT)
进程的当前驱动器和目录
当不提供全路径名时,windows函数就会在当前驱动器的当前目录下查找文件名。
获得DWORD GetCurrentDirectory(DWORD, PTSTR)
设置BOOL SetCurrentDirectory(PCTSTR)
系统对进程的当前驱动器和目录保持跟踪,但并不跟踪每个驱动器的当前目录。子进程能够
继承父进程的环境块,但并不能继承父进程的当前目录,子进程默认的当前目录是每个驱动
器的根目录。为了让子进程继承父进程的当前目录,父进程需要创建驱动器名的环境变量,
并为子进程添加这些环境块。通过调用GetFullPathName,父进程可以得到他的当前目录。
CreateProcess
原型:
BOOL CreateProcess(
PCTSTR pszApplicationName,
PTSTR pszCommandLine,
PSECURITY_ATTRIBUTE psaProcess,
PSECURITY_ATTRIBUTE psaThread,
BOOL bInheritHandles,
DWORD fdwCreate,
PVOID pvEnvironment,
PCTSTR pszCurDir,
PSTARTUPINFO psiStartInfo,
PPROCESS_INFORMATION ppiProcInfo
)
由本身线程退出
VOID ExitProcess(UNIT fuExitCode),不被推荐使用
系统将结束主线程,不管进程是否还有其它线程执行,而直接结束进程。
ExitThread与之不同的是只结束主线程,如果还有其它线程,则进程继续执行。
由其他进程结束,异步运行函数
BOOL TerminateProcess(HANDLE hProcess, UNIT fuExitCode)
多数的进程结束方法应是调用CloseHandle。
mysql数据库创建数据表时怎么引用其他数据表属性
MySQL 创建数据表创建MySQL数据表需要以下信息:表名表字段名定义每个表字段语法CREATE TABLE IF NOT EXISTS 表名(
`runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submi
容器实战高手 pdf
1、数据卷 初识Dockerfile以前是 commit 实现Dockerfile就是用来构建docker镜像的构建文件!命令脚本!先体验一下! 通过这个脚本可以生成镜像,镜像是一层一层的,脚本一个个的命令,每个命令都是一层!新建dockerfile1FROM centos
VOLUME ["volume01","volume02"]
CMD echo "---end---"
CMD /bi