| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1381 人关注过本帖
标题:[求助]system函数问题
只看楼主 加入收藏
祺姝
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-8-10
收藏
 问题点数:0 回复次数:9 
[求助]system函数问题
char filename[100]="\"D:\\安装软件\\VSS\\win32\"";
char *cmd3="\"set SSDIR=E:\\test_vssdata\"";
char *cmd4="\"SS status $\\ -r -Yadmin,840408 -o@test.txt\"";
strcat(filename,cmd3);
strcat(filename,cmd4);
system(filename);
system("set");

这段代码是利用system函数执行访问VSS库的命令行,编译运行后出现的结果发现设置环境变量这行set SSDIR=E:\\test_vssdata没设置成功(system("set");显示的结果没有看到设置的SSDIR环境变量),请大家帮我看下问题出在哪了?
先谢谢啦^_^
搜索更多相关主题的帖子: system函数 quot test set filename 
2007-08-10 13:43
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
第二次执行system指令相当于运行第二次,而不等同于在一个bat文件里运行第二行内容
是已经再次重新初始化了,

system("set");和之前的system函数没有任何联系

[此贴子已经被作者于2007-8-10 13:49:48编辑过]

2007-08-10 13:49
祺姝
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-8-10
收藏
得分:0 

但是第一个system运行时还是没执行set SSDIR=E:\\test_vssdata,因为SS status $\\ -r -Yadmin,840408 -o@test.txt这句执行的结果不是设置了set SSDIR=E:\\test_vssdata后应该有的结果


2007-08-10 14:03
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
第一句和第二句没有任何联系,第一句的执行结果完全不会影响第二句
例如:
system("dir");
system("cd..");
system("dir");
试试吧
2007-08-10 14:25
祺姝
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-8-10
收藏
得分:0 

楼上意思是说filename="D:\安装软件\VSS\win32\""set SSDIR=E:\test_vssdata\""SS status $\ -r -Yadmin,840
408 -o@test.txt"'D:\安装软件\VSS\win32\"这个里的三个命令中第一个执行后不影响第二个吗?


2007-08-10 14:37
boot2046
Rank: 2
等 级:新手上路
威 望:3
帖 子:168
专家分:0
注 册:2007-7-23
收藏
得分:0 
不熟悉windows,不知道他的system是调的什么
但是在Linux下,system函数是去调用"/bin/sh -c 命令"
所以等于是shell进程去执行的,所以设置的环境变量也就只是对那个shell管用,shell结束也就无效了

再运行system等于是又起了一个shell,他和之前的不是同一个,不相关,所以也就得不你要的结果了

Linux是简单的,你不需要成为天才也能理解这种简单,Windows是复杂的,就算你是天才也不能理解这种复杂
2007-08-10 14:43
祺姝
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-8-10
收藏
得分:0 
假如system函数不能连续处理几个DOS命令,那在c语言里有没有社么方法调用system函数让他能执行批处理文件呢

2007-08-10 14:52
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
system("myrun.bat");
把myrun.bat放在你的程序目录下
2007-08-10 14:54
boot2046
Rank: 2
等 级:新手上路
威 望:3
帖 子:168
专家分:0
注 册:2007-7-23
收藏
得分:0 
如果是运行程序倒是可以用system,要是设置环境变量,那还是免了吧,这就等于是说一个进程设置另一个进程的环境变量

Linux是简单的,你不需要成为天才也能理解这种简单,Windows是复杂的,就算你是天才也不能理解这种复杂
2007-08-10 14:56
祺姝
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-8-10
收藏
得分:0 
system("myrun.bat");
把myrun.bat放在你的程序目录下

试过了可以

谢谢大家了,特别要感谢下雨中飞燕 ^_^

2007-08-10 14:59
快速回复:[求助]system函数问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.087158 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved