2 alvern zhang Alvern_Zhang 于 2015.06.29 11:41 提问

C语言system函数打开文件的几种方式的不同

用c语言的system函数打开一个文件,system("cmd /c start out.txt")和system("out.txt")都可以,请问这两个有什么区别

3个回答

zhao4zhong1
zhao4zhong1   Rxr 2015.06.29 13:25
已采纳

C:>start /?
启动另一个窗口运行指定的程序或命令。

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/AFFINITY ] [/WAIT] [/B] [command/program]
[parameters]

"title"     在窗口标题栏中显示的标题。
path        启动目录
B           不创建新窗口启动应用程序。除非启用
            ^C 处理,否则该应用程序会忽略 ^C
            处理;^Break 是唯一可以中断该应用
            程序的方式
I           新环境是传递给 cmd.exe 的原始环境,
            而不是当前环境。
MIN         启动窗口最小化
MAX         启动窗口最大化
SEPARATE    在分离内存空间启动 16-位 Windows 程序
SHARED      在共享内存空间启动 16-位 Windows 程序
LOW         在 IDLE 优先级类中启动应用程序
NORMAL      在 NORMAL 优先级类中启动应用程序
HIGH        在 HIGH 优先级类中启动应用程序
REALTIME    在 REALTIME 优先级类中启动应用程序
ABOVENORMAL 在 ABOVENORMAL 优先级类中启动应用程序
BELOWNORMAL 在 BELOWNORMAL 优先级类中启动应用程序
AFFINITY    新应用程序将拥有指定处理器关系掩码,
            以十六进制数表示。
WAIT        启动应用程序并等待它结束
command/program
            如果是内部 cmd 命令或批文件,那么
            该命令处理器是用 /K 命令行开关运行
            cmd.exe 的。这表示该窗口在命令运行后
            仍然存在。

            如果不是内部 cmd 命令或批文件,则是
            一个程序,并作为窗口应用程序或控制台
            应用程序运行。

parameters  这些是传送到命令/程序的参数

如果命令扩展被启用,通过命令行或 START 命令的外部命令
调用会如下改变:

将文件名作为命令键入,非可执行文件可以通过文件关联调用。
(例如,WORD.DOC 会调用跟 .DOC 文件扩展名关联的应用程序)。
关于如何从命令脚本内部创建这些关联,请参阅 ASSOC 和
FTYPE 命令。

执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用
程序终止就返回命令提示符。如果在命令脚本内执行,该新行为
则不会发生。

如果执行的命令行的第一个符号是不带扩展名或路径修饰符的
字符串 "CMD","CMD" 会被 COMSPEC 变量的数值所替换。这
防止从当前目录提取 CMD.EXE。

如果执行的命令行的第一个符号没有扩展名,CMD.EXE 会使用
PATHEXT 环境变量的数值来决定要以什么顺序寻找哪些扩展
名。PATHEXT 变量的默认值是:

    .COM;.EXE;.BAT;.CMD

请注意,该语法跟 PATH 变量的一样,分号隔开不同的元素。

查找可执行文件时,如果没有相配的扩展名,看一看该名称是否
与目录名相配。如果确实如此,START 会在那个路径上调用
Explorer。如果从命令行执行,则等同于对那个路径作 CD /D。

caozhy
caozhy   Ds   Rxr 2015.06.29 13:08

一样的功能。
前者先调用了cmd.exe,它启动out.txt
后者直接启动out.txt

Alvern_Zhang
Alvern_Zhang 好的,谢谢~
2 年多之前 回复
u012377333
u012377333   Rxr 2015.06.29 18:19

很明显,第一个是间接的,第二个直接的。

Alvern_Zhang
Alvern_Zhang 多谢多谢!
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片