第四章 进程(3)进程的命令行环境变量
2、进程的命令行
创建一个新进程时,要传递一个命令行(几乎永远不会为空)用于创建新进程的可执行文件的名字时命令行上的第一个标记。
A: 当 C运行期的启动代码开始运行的时候,要检索进程的命令行,跳过可执行文件的名字,并将指向命令行其余部分的指针传递给WinMain的pszCmdLine参数。(pszCmdLine参数总是指向一个A N S I字符串。将WinMain改为wWinMain,就能够访问进程的Unicode版本命令行)
B: 如果我想修改命令行,首先我要将命令行拷贝到应用程序的本地缓存中,然后再修改本地缓存。
C:可以调用GetCommandLine函数来获得一个指向进程的完整命令行的指针。
PTSTR GetCommandLine();
该函数返回一个指向包含完整命令行的缓存的指针,该命令行包括执行文件的完整路径名。
D: CommaneLineToArgvW负责在内部分配内存。大多数应用程序不释放该内存,它们在进程运行终止时依靠操作系统来释放内存。这是完全可行的。
3、进程的环境变量
每个进程都有一个与它相关的环境块。环境块是进程的地址空间中分配的一个内存块。每个环境块都包含一组字符串。每个字符串的第一部分是环境变量的名字,后跟一个等号,等号后面是要赋予变量的值。变量中的空格是有意义的。
应用程序也可以使用各种注册表函数来修改这些注册表项目。
子进程可以继承一组与父进程相同的环境变量。但是,父进程能够控制子进程继承什么环境变量,指的是子进程获得父进程的环境块拷贝,子进程与父进程并不共享相同的环境块。即子进程能够添加、删除或修改它的环境块中的变量,而这个变化在父进程的环境块中却得不到反映。
A: GetEnvironmentVariable函数可以确定某个环境变量是否存在以及它的值
DWORD GetEnvironmentVariable(PCTSTR pszName, PTSTR pszValue,
DWORD cchvalue);
pszName为变量名,pszValue指向用于存放变量值的缓存,cchValue用于指明缓存的大小(用户字符来表示)。该函数可以返回拷贝到缓存的字符数,如果在环境中找不到该变量名,也可以返回0。
B: SetEnvironmentVariable函数来添加、删除、修改变量的值。
BOOL SetEnvironmentVariable(PCTSTR pszName, PCTSTR pszValue)
将pszName参数标识的变量设置为pszValue参数标识的值。如果变量已经存在就修改该值。如果指定的变量不存在,便添加该变量,如果pszValue是NULL,便从环境块中删除该变量。
转载于:https://www.cnblogs.com/dyufei/archive/2009/04/26/2574009.html
第四章 进程(3)进程的命令行环境变量相关推荐
- 《Linux进程概念,进程创建退出等待替换,环境变量等基础操作 ---总结》
前言 Linux系统的进程概念,进程状态,以及操作创建进程,还有环境变量及相关指令,程序地址空间等一些知识的梳理,将自己的理解总结如下,希望和各位一起进步,一起学习. 以下是本篇文章正文内容. 文章目 ...
- Python学习入门基础 -- 第四章 列表、元组、字典、字符串变量使用、变量进阶
Python基础入门知识点总结传送门 第一章 认识Python.Python常用集成开发环境PyCharm 第二章 注释.变量基本使用.变量的命名 第三章 运算符.判断if语句.while和for循环 ...
- 惊艳的cygwin——Windows下的Linux命令行环境的配置和使用
5年前倒腾过一次cygwin,当时体验感觉不好.到现在一直用的是GNU utilities for Win32,在Windows的CMD中使用*nix的命令工具包. GNU utilities for ...
- uboot命令集环境变量
文章目录 前言 命令集 环境变量 uboot中对Flash和DDR的管理 前言 uboot的命令因为适配自己的硬件,基本都经过裁剪,所以自己的命令集和其用法可能会有缺失 uboot文章连载: 1.ub ...
- 数据整理与命令行环境
数据整理 正则表达式 介绍 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某 ...
- linux回到桌面的命令符_Linux命令行环境与桌面环境护切换
1.前言 在大部分情况下,我们在使用Linux时习惯使用命令行环境,但是有时候也还是会使用到安装桌面环境,所以在这里介绍一下如何给没有安装桌面环境的系统安装桌面环境.以Centos 6.5 为例演示一 ...
- Linux桌面环境与命令行环境切换快捷键,以及linux 图形界面 X Server 关闭 启动
1 Linux桌面环境与命令行环境切换快捷键 1.从linux桌面环境切换到命令行终端 Ctrl+Alt+F1-F6:进入虚拟终端或虚拟控制台,其中F1~F6对应与6个不同的虚拟终端.进入终端输入用户 ...
- 【Linux】5.linux下的export命令和环境变量
linux下的export命令和环境变量 linux中在 profile 或者 bashrc 或者其他类似的文件中设置环境变量时(比如PATH),如果没有export,那么只能在直接启动的shell中 ...
- php 命令行 php.ini,php web环境和命令行环境下查找php.ini的方法分享
php web环境和命令行环境下查找php.ini的位置 php.ini 是php运行的配置文件,不是一个必须使用的文件.不过通常php程序运行都需要加载php.ini文件. php.ini 提供了一 ...
最新文章
- 巧妙算法:找出数组中消息的数字
- reactjs组件的生命周期函数:getSnapshotBeforeUpdate更新之前获取快照
- Redis搭建及介绍
- Java之HashMap用法
- wordpress插件_哪个是最好的WordPress画廊插件? (性能比较)
- 光纤猫连接路由器_CodingPark编程公园
- HDU4565 So Easy! (矩阵)
- 云计算、大数据和人工智的区别和联系
- 浙大远程教育计算机小抄,一张A4纸能写多少个字?看完浙大考生的“小抄”,网友:稳过!...
- 台式计算机键盘进水了还能用,台式电脑键盘进水了怎么办
- [Java]public T void method,此地泛型的意思
- 6月9日の勉強レポート
- 解决 i5 6500 安装黑苹果 Sierra 显卡不正常问题
- 同样是做IT技术,人家为什么能在业余轻松赚钱
- 容器化技术与微服务结合---结合springcloud微服务框架进行部署(含切换成阿里云docker仓库)(五)
- 调用华为云GES服务业务面API相关参数的获取
- 越来越「保守」的索尼,还能满足下一代玩家吗?
- 农村现在做什么可以在家创业?
- Android - 通知Notification
- WeakMap弱引用