`

C语言中system函数

阅读更多
转自http://blog.sina.com.cn/s/blog_60cbc1700100qlpi.html

文章摘自百度百科

简介
  (执行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的返回值影响了原进程
分享到:
评论

相关推荐

    C语言附带超时功能的system函数,liuux版本

    C语言附带超时功能的system函数,liuux版本 接口:int system_timeout(const char *cmdstring, int timeout)

    C语言中system&#40;&#41;函数的用法总结

    函数功能强大,很多人用却对它的原理知之甚少先看linux版system函数的源码: 代码如下:#include &lt;sys&gt;#include &lt;sys&gt;#include &lt;errno&gt;#include int system&#40;const char * cmdstring&#41;{ pid_t pid; int ...

    C语言system函数参考颜色表(参考的是单元格的填充颜色和对应的文字)

    这里有关于C语言system函数的参考颜色表,可以直观地显示出system函数中的color命令里的0~F分别对应出什么颜色,适用于在color命令中,不知道怎么设置控制台的背景色和前景色的人,无论什么时候,你只要想用system...

    C语言中的system函数详解[归类].pdf

    C语言中的system函数详解[归类].pdf

    c语言中的system命令

    ### C语言中的system命令 在C语言编程中,`system`命令是一个十分强大的工具,它允许程序员通过C语言编写的程序来执行操作系统级别的命令。这对于需要与操作系统进行交互的应用程序来说是非常有用的。本文将详细...

    C语言中的时间函数

    ### C语言中的时间函数 在C语言中,处理时间数据是一项常见的需求,特别是在涉及日期、时间戳、定时器等应用场景时。本文将详细介绍C语言中用于处理时间的主要函数及其用法,帮助读者更好地理解和掌握这些重要的...

    C语言利用钩子函数来实现鼠标操作

    3. **处理鼠标事件**:在钩子函数中处理鼠标点击事件,如记录鼠标点击位置。 4. **释放钩子**:在程序退出前,通过`UnhookWindowsHookEx()`释放钩子。 #### 五、示例代码片段 下面是一个简单的示例,展示了如何...

    C语言图形字符函数大全

    在C语言中,可以使用系统调用来实现这些功能,例如使用`system("cls")`(在Windows中)或`system("clear")`(在Unix/Linux中)清屏。至于光标定位,ncurses库提供了`move(y, x)`函数,可以将光标移动到指定的行y和列...

    C语言高级编程

    3. **C语言中system函数**: `.doc`文件讨论了C语言中的`system`函数,这是一个用于执行操作系统命令的函数。了解如何安全有效地使用`system`函数可以扩展C程序的功能,比如执行shell命令、创建或删除文件等。 4. ...

    一些常见的C语言的函数.docx

    `system()`函数允许你在C程序中执行操作系统命令。它接收一个字符串参数,该字符串是你要执行的命令。这个函数非常强大,但也需要注意安全问题,因为它可能会被执行恶意代码。 C语言的基础知识包括以下几个方面: ...

    C语言进阶system函数.docx-综合文档

    **C语言进阶system函数详解** 在C语言编程中,`system()`函数是一个非常实用的工具,它允许我们在程序中直接执行操作系统级别的命令。这个函数在Windows操作系统下尤其常见,其功能是向DOS(Disk Operating System...

    C语言编写函数的方法

    S函数(System Functions)是Simulink中的一个特殊功能,它允许用户用C语言或其他编程语言实现自定义的动态系统行为。 S函数可以分为几个主要部分,首先是函数的初始化,这一部分通过函数mdlInitializeSizes()实现...

    C语言进阶system函数.rar-综合文档

    system("echo 欢迎使用C语言进阶system函数!"); ``` 2. 启动记事本程序并打开一个文件: ```c char fileName[] = "example.txt"; system(("notepad " + fileName).c_str()); ``` 3. 运行命令行命令,如`dir`...

    C语言附带超时功能的system函数,windows版本。

    附带超时功能的system函数,windows版本。 DWORD system_timeout(char* cmd, int timeout)

    C语言程序设计(第2版)-2期 拓展知识5-4 system函数.pdf

    在C语言编程中,system函数是一个十分实用的工具,它允许程序员在程序中直接执行DOS命令,极大地扩展了C程序的功能。system函数是C标准库中的一个函数,包含在`stdlib.h`头文件中。本文将深入探讨system函数的使用...

    C语言中system[文].pdf

    在C语言中,`system()`函数是一个非常有用的工具,它允许程序员执行操作系统级别的命令,比如在DOS环境下执行各种操作。这个函数定义在`stdlib.h`头文件中,其基本语法是`int system(const char *command);`。返回值...

    java语言方法调用C语言函数

    本文将深入探讨如何在Java中通过JNI调用C语言函数,为初学者提供一个详尽的实例教程。 1. **Java Native Interface (JNI)** JNI是Java平台标准的一部分,它为Java程序员提供了一个接口,可以编写本地方法(即C或...

    C语言语法着色中文版函数大全.pdf

    C语言是一种广泛使用的计算机编程语言,其标准库中提供了丰富的函数,以支持各种编程需求。本文档详细列出了这些函数,并采用了中文语法着色的格式,使得在查阅时更加方便和直观。以下是一些重要的C语言函数知识点,...

    VB与C语言图形图像函数指导

    在VB中,我们可以通过`System.Drawing`命名空间下的类和方法来绘制图形。例如: 1. `Graphics`类:这是VB中用于绘图的核心对象,可以从控件或窗体获取实例。使用`DrawLine`、`DrawRectangle`等方法绘制线条和矩形。...

Global site tag (gtag.js) - Google Analytics