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 好的,谢谢~
大约 3 年之前 回复
u012377333
u012377333   Rxr 2015.06.29 18:19

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

Alvern_Zhang
Alvern_Zhang 多谢多谢!
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言中system函数的使用
System()是c语言中为了调用windows系统命令来设置的,它包含在头文件#include中,具体的使用可以在system("help");后发现帮助命令,命令如下: 有关某个命令的详细信息,请键入 HELP 命令名 ASSOC          显示或修改文件扩展名关联。 ATTRIB         显示或更改文件属性。 BREAK          设置或清除扩展式 CTRL+
C语言文件打开方式简介
1、“r”以只读方式打开一个文件; 2、“w”以只写方式打开一个文件; 3、“a”打开一个文件追加; 4、“rb”以只读方式打开一个二进制文件; 5、“rw”以只写方式打开一个二进制文件; 6、“ra”打开一个二进制文件追加; 7、"r+"以读写方式打开一个文件; 8、“w+”以读写方式建立一个文件; 9、“a+”以读写方式打开一个文件追加; 10、“rb+”以读写方式打开一个二
C中操作文件的几种模式
使用文件的方式共有12种,下面给出了它们的符号和意义。  文件打开方式  意义 rt  只读打开一个文本文件,只允许读数据  wt  只写打开或建立一个文本文件,只允许写数据  at  追加打开一个文本文件,并在文件末尾写数据  rb  只读打开一个二进制文件,只允许读数据  wb  只
C语言中的system函数参数详解
函数名: system   功   能: 发出一个DOS命令   用   法: int system(char *command);   system函数已经被收录在标准c库中,可以直接调用 system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数执行命令和在DOS窗口中执行命令的效果是一样的,所以只要在运行窗口中可以使用的命令都可以用SY
C语言system函数用法
system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数执行命令和在DOS窗口中执行命令的效果是一样的,所以只要在运行窗口中可以使用的命令都可以用SYSTEM()传递,但要注意的是输入斜线时要输入两个,以名C语言当作转义字符处理。         system函数 是可以调用一些DOS命令,比如system("cls");//清屏,等于在DOS上
C语言的system函数
这个是与操作系统有关的函数,在linux/unix下system可以运行所有的shell命令windows下system可运行所有的windows执行文件,除DOS命令外,也可运行windwos的命令,如system("calc.exe");  //运行计算器
C语言 system函数
Windows函数windows操作系统下system () 函数详解(主要是在C语言中的应用) 函数名: system功 能: 发出一个DOS命令用 法: int system(char *command);system函数已经被收录在标准c库中,可以直接调用程序例:#include stdlib.h>#include stdio.h>int main(void){printf("About t
c语言两种方式死循环的区别
for(;;)系统执行时会自动优化两个分号,不用去判断。并且生成的文件占用的内存小。 while(1);因为while中的判断是一个数,系统每次执行都会去判断是真是假。并且生成文件占用的内存较大。
linux操作系统编程——system函数的实现
程序要求:       了解system()函数的实现方式,采用自己的方式实现system()函数的功能; 程序如下: #include #include #include #include #include int system_test(const char *cmdstring) { pid_t pid; int status; if
C语言三种参数传递方式
C语言中存在三种参数传递方式,分别是值传递,地址传递,引用传递;三种方式之间形式参数的区别到底是什么?三种方式在内存中的操作到底是什么样的? 本文通过几个例子来分析、总结。