首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么putenv()可以工作,而export不能?

putenv()和export都是用于设置环境变量的函数,但是它们的工作原理和适用场景有所不同。

putenv()是一个C语言函数,用于在当前进程中设置环境变量。它接受一个字符串参数,格式为"变量名=值",通过将这个字符串添加到当前进程的环境变量列表中来设置环境变量。putenv()函数的优势在于它可以在运行时动态地设置环境变量,而不需要重新启动进程。putenv()适用于需要在程序运行过程中临时设置环境变量的场景。

export是一个shell命令,用于将变量导出到子进程的环境中。它将一个变量设置为环境变量,并将其传递给子进程。export命令只在当前shell会话中有效,当会话结束时,导出的环境变量也会失效。export适用于需要将变量传递给子进程的场景。

所以,putenv()可以工作是因为它直接在当前进程的环境变量列表中设置环境变量,而export不能工作是因为它只在当前shell会话中有效,无法直接影响到其他进程的环境变量。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

国外的程序猿可以工作到退休国内的为什么这么短命

真正的原因是我们国内的很大一部分程序猿只是工具的使用者,不会去思考工具的产生和原理,用惯了一个高效的工具就被这个工具套牢成为奴隶,国外的程序猿跟多的会去思考和专研这个工具的产生和原理,然后可能会自己优化出个...无论是作为吃瓜群众,还是工具使用者的你,难道就不能做点除了为别人喝彩以外的事情吗? 你甘愿仅仅做帮助他人实现人生巅峰的助推器?你甘愿一辈子当绿叶去衬托这朵大红花?...这些工具确实是能倍速改善工作效率,但是,这是一种假象。因为,你被巨大的高效所蒙蔽双眼。当你离开这个工具时,你发现你什么都不会,什么都不是。...这就是为什么高度模块化公司出来的人,能力上似乎并不高的原因。 可是要了解模块化上层开发者的逻辑真的太难了,就一般人而言,压根行不通的,所以只能应用别无他法。这个想法也对,也不对。...为什么我们想不到,而他想到并付出行动?我想这个问题,我们应该好好去思考一番。 其次,通过深度思考,将这套流程化思维内化,嫁接到自己的工作中去。换句话说,通过别人的模块化工具建立自己的模块化工具。

55800

《你为什么工作》:请尊重你自己

选择的悖论“TED演讲地址 核心内容:我们为什么工作?我们为什么要放弃既快乐又刺激的安逸生活,每天早晨睡眼惺忪地从舒适的床上挣扎而起?多么愚蠢的问题啊。我们工作当然是因为我们要养家糊口。...因为我能想象到这样一个场景,恨铁不成钢的老板或管理者们偶然看到了这本书,翻了一翻觉得如获至宝,心里想我每天都是带着使命感在工作的,为什么我的员工们不能和我一样也能用使命感来工作。...其实好工作与坏工作工作职责本身没有太大的区别,更多地是我们赋予了工作何种额外的意义。同事都把工作视为工作,我却不这么看。老板要将一份好工作转化为坏工作,并不难,关键在于假设工人不愿待在这里就可以了。...我是个行动者,这些硬件的成本即便是刚工作的毕业生也是工资的几分之一就可以承受的了,从经济思维的角度这点投入能够换回每天开心幸福的工作,为啥要天天和公司较劲呢。...在《混乱》这本书里,对办公室的装饰进行了一个有趣的实验,结果发现如果员工可以自主摆放桌椅,随便折腾的办公室工作效率显著高于其他办公室。因为员工会有对工作的自主权,而这种自主权可以激发他对工作的初心。

51420

为什么HashMap的键值可以为null,ConcurrentHashMap不行?

这篇文章的时候,漏了一个知识点,直到晚上吃饭的时候才突然想到,关于ConcurrentHashMap在存储Key与Value的时候,是否可以存null的问题,按理说这是一个小问题,但build哥却不敢忽视...接下来我们就将HashMap、Hashtable、ConcurrentHashMap这三集合类的键值是否可以null的问题,放一起对比去学习一下。...null的value值,我们知道HashMap的键值对特点如同身份证与人名一样,key等同于身份证,全国唯一,value值等同于人名,可以重复,比如全国有上万个叫张伟的,所以value值也就同样允许存储多个...大致的意思是,在单线程环境中,不会存在一个线程操作该 HashMap 时,其他的线程将该 HashMap 修改的情况,可以通过 contains(key)来做判断是否存在这个键值对,从而做相应的处理;...而在多线程环境下,可能会存在多个线程同时修改键值对的情况,这时是无法通过contains(key)来判断键值对是否存在的,这会带来一个二义性的问题,Doug Lea说二义性是多线程中不能容忍的!

5600

买特斯拉可以为什么不能完全相信自动驾驶?

所以根据我的估计,对于实验室以及一些理想路况的情况,目前的顶尖技术是可以达到L3甚至是L4,但对于放之四海皆准的普通路况来说,保守估计应该只能实现L2。...图像识别有一个很大的问题是它的准确率相对并不高,即使在训练的过程当中可以达到99%以上的准确度,但是谁也不能保证它训练的样本当中已经覆盖了所有的情况。...你可能还会奇怪,在上面的例子当中难道雷达就没有工作吗?当然是有工作的,但是凡是系统都会存在误差,尤其是当图像识别的结果和雷达结果有矛盾的时候,系统究竟应该相信哪一个的呢?...数据量虽然爆炸,但是车辆对数据分析的要求却不能降低,尤其是车身是在运动的,速度很快的话,0.1秒的延迟就可以酿成惨剧。所以计算的延迟必须非常低。...比如车辆要从A点去B点,我们通过各种地图可以知道路线,但是却不能知道路况。不知道这条路有多宽,是高架还是普通路,不知道几车道。不知道这些信息还如何行使呢?

53820

为什么域名能够访问网站,直接使用IP不可以

通过nslookup 解析出杭电官网的ip地址,然后在浏览器中手动输入相关ip地址,结果并不能得到访问结果,为什么?...1.为什么我直接访问www.hdu.edu.cn是能够访问到网站的,当我输入218.75.123.182却访问不到?...这么多站点对应同一个ip地址,你只输入ip地址,浏览器当然不知道你到底要访问哪一个站点,这就是为什么不能够使用ip地址去访问的原因所在。...05多个站点对应一个ip地址的问题 理论上来说,一个ip对应一个站点,这是很正常的,那为什么会出现上文中所描述的那样,一个ip地址对应多个站点的情况呢?...这里对于这一部分内容不做深究 由此,我们基本可以推断出,杭电实际的网络结构是下图所示的样子。不是上文中,我所推测的虚拟主机。 ?

10K41

程序员,你为何工作为什么工作把自己当成一个企业别矫情,无效的努力没毛线用小结

为什么工作 "你为什么工作?“ "这不废话吗?我不工作你养我啊?工作就是为了赚钱养家,要不是出于经济压力,我才懒得工作”? 谈起工作的价值这个话题,很多人都会觉得很无聊。...工作,无非就是用自己的时间换钱,是一种生活无奈的选择。那些为了生活意义选择工作的都是段子手编造出来的。现实中,工作是无聊的,枯燥的,令人难以忍受的。所以“窃·格瓦拉”才会选择偷电动车。 ?...因为工作内容固然是属于公司的,但工作能力是属于自己的,职业生涯是属于自己的。 你,是在为自己工作。 ? 为什么工作 把自己当成一个企业 必须将自己当成一个企业,而将公司当成你的客户。...甚至可以说,连基本的电脑办公常识都不懂。怎么可能做80页ppt都不保存?即使软件没有设置自动保存,任何一个有经验的白领,都会手动保存的习惯。...程序员的日常工作,有很多内容其实是类似的,甚至是重复的。稍微用心的人,肯定能找到高效操作的方法。甚至可以将很多工作都写成自动化脚本,能让程序完成的事就不要浪费自己的时间。

51860

八股文:为什么HashMap的键值可以为null,ConcurrentHashMap不行?

探寻源码 ConcurrentHashMap的put方法对key和value做了非空判断,如果为空,会抛出空指针异常: 那为什么ConcurrentHashMap如此设计呢?...在单线程环境中,不会存在一个线程操作该 HashMap 时,其他的线程将该 HashMap 修改的情况,可以通过 contains(key)来做判断是否存在这个键值对,从而做相应的处理。...而在多线程环境下,可能会存在多个线程同时修改键值对的情况,这时是无法通过contains(key)来判断键值对是否存在的,这会带来一个二义性的问题,Doug Lea说二义性是多线程中不能容忍的!...这种不确定性会造成线程安全性问题,ConcurrentHashMap本身又是一个线程安全的集合。 所以才这么设计。

11110

为什么java不是最强的语言JVM确可以叫做最强的虚拟机呢?

java虚拟机的这关 java最强特性 跨平台的支持 大部分java开发人员,都会在项目中用过java平台相关的高精尖的技术,但是对于底层支持的JVM却了解甚少 如何看待上层框架和底层支持 有一定工作经验的人开发人员...,会觉得SSM和微服务才是java技术的核心和重点,基础的技术凑活就好,非也,小冷也见过一些只知道追逐新兴技术但是确练string类中有一个可以反转字符串的方法都不知道,这是一种“病态”的发展趋势 很多的大牛...为什么我们要学习jvm 面试需要 尤其是大厂 对于jvm的重视程度还是比较高的 中高级程序员必备技能 项目管理,调优的需要 追求极客的精神 垃圾回收算法,JIT,底层原理 java可能不是最好的语言但是...其实没有最好的编程语言,只有最适合的使用场景 JVM : write once, run anywhere 在任意一个地方编写,在任意平台上运行 java虚拟机通过java编译出的字节码文件,来实现全平台的运行 为什么我们要说...JVM是最强的虚拟机呢,应为它不只是可以多平台运行java,也有很多的语言可以在jvm上实现跨平台,只要他们遵循JVM的规则生成对应的字节码文件 java虚拟机和他的强大特性如下几点 Java 7

47510

为什么巨头不约同选择VR一体机?这篇测评或许可以告诉你

大厂不约同选择VR一体机 如果细究VR一体机的历史,我们就会知道,这个名字其实可以说是国内硬件厂商“发明”的。因为在那个时候,Oculus还在钻研他们的PC VR。 ?...同时,比较“另类”的是,在前面板的中间有一颗广角摄像头,和摄像头对应的另一面是一个距离传感器,两者协调工作用于位置追踪定位。 ?...其中,第一段是可以灵活调转方向的顶部托,后两段是自适应角度后脑托。由于采用的是具有弹性的不锈钢金属带,所以佩戴的时候可以快速贴合头部,软质海绵垫板的设计,让佩戴毫无压迫感。 ?...VR一体机最大程度的做到了取长补短,作为一种日常娱乐工具,可以说绰绰有余了。 不过受限于内容和游戏应用的稀缺,如果消费者投入几大千只是用来观看视频的话,性价比就显然过低了。...不过,我们依然不能忽视摆在VR硬件发展前面的一些“拦路虎”:如何平衡VR体验和价格的矛盾?如何说服消费者购买你的VR硬件,并且心甘情愿为VR内容体验付费? 这些问题,需要全体从业者认真对待。

1.6K30

《叶问》32期,一样的Python代码,为什么可以删表,却不能更新数据

,却可以正常删表: import pymysql conn=pymysql.connect( host = '127.0.0.1', user = 'yewen', passwd='YeWen.3306...sql = "drop table tmp1" cur.execute(sql) cur.close() conn.close() 回答 其实问题并不复杂,有几个原因: 要写入的表是InnoDB引擎,InnoDB...删除表是DDL操作,目前DDL操作还不支持事务,所以即便没有开启自动提交,也能成功。 知道上面的原因就好办了。...简言之,有几点建议: 当有大批量数据更新时,可以先关闭autocommit,等事务结束后,再手动提交。事务commit时要刷新redo log、binlog等,代价还是比较大的。...不少开发框架都会默认设置 set autocommit=0,更有甚者,每次执行一个SQL前,都要发送一次set请求,增加了无谓的开销,如果有这种情况,可以自行调整开发框架的代码。

47430

Linux:进程概念(四.main函数的参数、环境变量及其相关操作)

(完美符合上面的情景) HOME: 这个环境变量指定了当前用户的主工作目录,也就是用户登录系统后所处的默认目录。...把文件的路径添加到PATH中 PATH=自己代码路径:$PATH 如果不加:PATH,那么PATH会直接被覆盖,只有自己代码的路径 2.4环境变量相关的命令 echo: 显示某个环境变量值 export...: 设置一个新的环境变量 export [变量名]=[赋值] 可以设置一个名为“变量名”的环境变量,并赋予其值为“赋值” env: 显示所有环境变量 unset: 清除环境变量 set: 显示本地定义的...shell变量和环境变量 本地变量 直接使用 变量名=赋值 我们这样就能创建一个本地变量,本地变量不能继承。...注意,putenv 函数会修改其参数指向的字符串。因此,如果你不希望原始字符串被修改,你应该传递一个字符串的副本给 putenv

6100
领券