C语⾔system函数详解
函数名: system
功  能: 发出⼀个DOS命令
⽤  法: int system(char *command);
system函数已经被收录在标准c库中,可以直接调⽤
程序例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
printf("About to spawn command and run a DOS command\n");
system("dir");
return 0;
}
linux操作系统下system () 函数详解
(执⾏shell 命令)
相关函数
fork,execve,waitpid,popen
表头⽂件#include<stdlib.h>
定义函数int system(const char * string);
函数说明
system()会调⽤fork()产⽣⼦进程,由⼦进程来调⽤/bin/sh-c string来执⾏参数string
字符串所代表的命令,此命>令执⾏完后随即返回原调⽤的进程。在调⽤system()期间SIGCHL信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。
返回值 =-1:出现错误
=0:调⽤成功但是没有出现⼦进程
>0:成功退出的⼦进程的id
如果system()在调⽤/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回⾮零值>。如果system()调⽤成功则最后会返回执⾏shell命令后的返回值,但是此返回值也有可能为 system()调⽤/bin/sh失败所返回的127,因此最好能再检查errno 来确认执⾏成功。
附加说明
在编写具有SUID/SGID权限的程序时请勿使⽤system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。
范例
#include<stdlib.h>
main()
{
system(“ls -al /etc/passwd /etc/shadow”);
c++string类型}
执⾏结果:
-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
-r--------- 1 root root 572 Sep 2 15 :34 /etc/shado
例2:
char tmp[];
sprintf(tmp,"/bin/mount -t vfat %s /mnt/usb",dev);
system(tmp);
其中dev是/dev/sda1.
system("pause") 是调⽤WINDOWS CONSOLE APP下的命令 PAUSE的。system("const char*")就是调⽤WINDOWS CONSOLE APP下的命令。
⽐如system("exit");
system("ping 192.168.0.1")等等
⽽getchar()只是C标准库⾥等待⼀个字符的函数,两者区别很⼤。
system函数是可以调⽤⼀些DOS命令,⽐如
system("cls");//清屏,
等于在DOS上使⽤cls命令
下⾯列出常⽤的DOS命令,都可以⽤system函数调⽤:
ASSOC 显⽰或修改⽂件扩展名关联。
AT 计划在计算机上运⾏的命令和程序。
ATTRIB 显⽰或更改⽂件属性。
BREAK 设置或清除扩展式 CTRL+C 检查。
CACLS 显⽰或修改⽂件的访问控制列表(ACLs)。
CALL 从另⼀个批处理程序调⽤这⼀个。
CD 显⽰当前⽬录的名称或将其更改。
CHCP 显⽰或设置活动代码页数。
CHDIR 显⽰当前⽬录的名称或将其更改。
CHKDSK 检查磁盘并显⽰状态报告。
CHKNTFS 显⽰或修改启动时间磁盘检查。
CLS 清除屏幕。
CMD 打开另⼀个 Windows 命令解释程序窗⼝。
COLOR 设置默认控制台前景和背景颜⾊。
COMP ⽐较两个或两套⽂件的内容。
COMPACT 显⽰或更改 NTFS 分区上⽂件的压缩。
CONVERT 将 FAT 卷转换成 NTFS。您不能转换当前驱动器。COPY 将⾄少⼀个⽂件复制到另⼀个位置。
DATE 显⽰或设置⽇期。
DEL 删除⾄少⼀个⽂件。
DIR 显⽰⼀个⽬录中的⽂件和⼦⽬录。
DISKCOMP ⽐较两个软盘的内容。
DISKCOPY 将⼀个软盘的内容复制到另⼀个软盘。
DOSKEY 编辑命令⾏、调⽤ Windows 命令并创建宏。
ECHO 显⽰消息,或将命令回显打开或关上。
ENDLOCAL 结束批⽂件中环境更改的本地化。
ERASE 删除⾄少⼀个⽂件。
EXIT 退出 CMD.EXE 程序(命令解释程序)。
FC ⽐较两个或两套⽂件,并显⽰不同处。
FIND 在⽂件中搜索⽂字字符串。
FINDSTR 在⽂件中搜索字符串。
FOR 为⼀套⽂件中的每个⽂件运⾏⼀个指定的命令
FORMAT 格式化磁盘,以便跟 Windows 使⽤。
FTYPE 显⽰或修改⽤于⽂件扩展名关联的⽂件类型。
GOTO 将 Windows 命令解释程序指向批处理程序中某个标明的⾏。GRAFTABL 启⽤ Windows 来以图像模式显⽰扩展字符集。
HELP 提供 Windows 命令的帮助信息。
IF 执⾏批处理程序中的条件性处理。
LABEL 创建、更改或删除磁盘的卷标。
MD 创建⽬录。
MKDIR 创建⽬录。
MODE 配置系统设备。
MORE ⼀次显⽰⼀个结果屏幕。
MOVE 将⽂件从⼀个⽬录移到另⼀个⽬录。
PATH 显⽰或设置可执⾏⽂件的搜索路径。
PAUSE 暂停批⽂件的处理并显⽰消息。
POPD 还原 PUSHD 保存的当前⽬录的上⼀个值。
PRINT 打印⽂本⽂件。
PROMPT 更改 Windows 命令提⽰符。
PUSHD 保存当前⽬录,然后对其进⾏更改。
RD 删除⽬录。
RECOVER 从有问题的磁盘恢复可读信息。
REM 记录批⽂件或 CONFIG.SYS 中的注释。
REN 重命名⽂件。
RENAME 重命名⽂件。
REPLACE 替换⽂件。
RMDIR 删除⽬录。
SET 显⽰、设置或删除 Windows 环境变量。
SETLOCAL 开始批⽂件中环境更改的本地化。
SHIFT 更换批⽂件中可替换参数的位置。
SORT 对输⼊进⾏分类。
START 启动另⼀个窗⼝来运⾏指定的程序或命令。
SUBST 将路径跟⼀个驱动器号关联。
TIME 显⽰或设置系统时间。
TITLE 设置 CMD.EXE 会话的窗⼝标题。
TREE 以图形模式显⽰驱动器或路径的⽬录结构。
TYPE 显⽰⽂本⽂件的内容。
VER 显⽰ Windows 版本。
VERIFY 告诉 Windows 是否验证⽂件是否已正确写⼊磁盘。VOL 显⽰磁盘卷标和序列号。
XCOPY 复制⽂件和⽬录树。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。