C++中system()函数的⽤法
windows下system () 函数详解 
 windows操作系统下system () 函数详解(主要是在C语⾔中的应⽤) 函数名: system
  功 能: 发出⼀个DOS命令
  ⽤ 法: int system(char *command);
  system函数已经被收录在标准c库中,可以直接调⽤
  程序例:
  #inc lude < >
  #include < >
  int main(void)
  {
  printf("About to spawn  and run a DOS command\n");
  system("dir");
  return 0;
  }
  ⼜如:system("pause")可以实现冻结屏幕,便于观察程序的执⾏结果;system("CLS")可以实现清屏操作。⽽调⽤color函数可以改变控制台的前景⾊和背景,具体参数在下⾯说明 。
  例如,⽤ system("color 0A"); 其中color后⾯的0是背景⾊代号,A是前景⾊代号。各颜⾊代码如下:
  0=⿊⾊ 1=蓝⾊ 2=绿⾊ 3=湖蓝⾊ 4=红⾊ 5=紫⾊ 6=黄⾊ 7=⽩⾊ 8=灰⾊ 9=淡蓝⾊ A=淡绿⾊ B=淡浅绿⾊ C=淡红⾊ D=淡紫⾊ E=淡黄⾊ F=亮⽩⾊
system("mkdir F:\hello\world") 可以在F:盘下建⽴⼀个⽂件夹hello,在hello下⾯建⽴⼀个⽂件夹world。
  (注意:  6.0 ⽀持system) 举例
  看了下⾯实例,相信你会对学到更多system在C程序设计中的应⽤。
  例⼀:   C语⾔调⽤DOS命令实现定时关机 :
  #include<stdio.h>
  #include<string.h>
  #include<stdlib.h>
  int print()
  {
  printf(" ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪╪╪╪\n");
  printf("╔═══╧╧ C语⾔ 关机程序 ╧╧═══╗\n");
  printf("║※1.实现10分钟内的定时关闭计算机 ║\n");
  printf("║※2.⽴即关闭计算机 ║\n");
  printf("║※3.注销计算机 ║\n");
  printf("║※0.退出系统 ║\n");
  printf("╚═══════════════════╝\n");
  return 0;
  }
  void main()
  {
  system("title C语⾔关机程序");//设置cmd窗⼝标题
  system("mode con cols=48 lines=25");//窗⼝宽度⾼度
  system("color 0B");
  system("date /T");
  system("TIME /T");
  char cmd[20]="shutdown -s -t ";
  char t[5]="0";
  print();
  int c;
  scanf("%d",&c);
  getchar();
  switch(c)
  {
  case 1:printf("您想在多少秒后⾃动关闭计算机? (0~600)\n");scanf("%s",t);system(strcat(cmd,t));break;  case 2:system("shutdown -p");break;
  case 3:system("shutdown -l");break;
switch函数用法举例
  case 0:break;
  default:printf("Error!\n");
  }
  system("pause");
  exit(0);
  }
  例⼆:
  ⽤C语⾔删除⽂件,例如⽂件的位置是d:\
  ⽤system()函数执⾏windows命令。
  #include <stdlib.h>
  #include <stdio.h>
  int main(void)
  {
  system("del d:\");
  return 0;
  }
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 命令并创建宏。
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      记录批⽂件或  中的注释。
REN      重命名⽂件。
RENAME  重命名⽂件。
REPLACE  替换⽂件。
RMDIR    删除⽬录。
SET      显⽰、设置或删除 Windows 环境变量。
SETLOCAL 开始批⽂件中环境更改的本地化。
SHIFT    更换批⽂件中可替换参数的位置。
SORT    对输⼊进⾏分类。
START    启动另⼀个窗⼝来运⾏指定的程序或命令。
SUBST    将路径跟⼀个驱动器号关联。
TIME    显⽰或设置系统时间。
TITLE    设置 CMD.EXE 会话的窗⼝标题。
TREE    以图形模式显⽰驱动器或路径的⽬录结构。
TYPE    显⽰⽂本⽂件的内容。
VER      显⽰ Windows 版本。
VERIFY  告诉 Windows 是否验证⽂件是否已正确写⼊磁盘。
VOL      显⽰磁盘卷标和序列号。
XCOPY    复制⽂件和⽬录树。
命令⼤⼩写均可。
Linux下system () 函数详解简介
  (执⾏shell 命令)
  相关函数
  fork,execve,waitpid,popen
  表头⽂件
  #include<stdlib.h>
  定义函数
  int system(const char * string);
  函数说明
  system()会调⽤fork()产⽣⼦进程,由⼦进程来调⽤/bin/sh-c string来执⾏参数string字符串所代表的命令,此命令执⾏完后随即返回原调⽤的进程。在调⽤system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。
  返回值
  如果fork()失败 返回-1:出现错误
  如果exec()失败,表⽰不能执⾏Shell,返回值相当于Shell执⾏了exit(127)
  如果执⾏成功则返回⼦Shell的终⽌状态
  如果system()在调⽤/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回⾮零值>。如果system()调⽤成功则最后会返回执⾏shell命令后的返回值,但是此返回值也有可能为 system()调⽤/bin/sh失败所返回的127,因此最好能再检查errno 来确认执⾏成功。
  附加说明
  在编写具有SUID/SGID权限的程序时请勿使⽤system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。 范例
  #i nclude<stdlib.h>
  main()
  {
  system(“ls -al /etc/passwd /etc/shadow”);
  }
  执⾏结果:
  -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与exec的区别
1、system()和exec()都可以执⾏进程外的命令,system是在原进程上开辟了⼀个新的进程,但是exec是⽤新进程(命令)覆盖了原有的进程
2、system()和exec()都有能产⽣返回值,system的返回值并不影响原有进程,但是exec的返回值影响了原进程

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