2013-09-0916:06:02

1. 头文件:

#include <stdlib.h>

2. 定义函数:

int system(const char * string);

3. 函数说明:

system()会调用fork()产生子进程,由子进程来调用

/bin/sh -c string

来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。

在调用system()期间SIGCHLD信号会被暂时搁置,SIGINT和SIGQUIT信号则会被忽略。

4. 返回值:

4.1 如果 system()在调用/bin/sh 时失败则返回127, 其他失败原因返回-1。

4.2 若参数string 为空指针(NULL), 则返回非零值。

4.3 如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为system()调用/bin/sh 失败所返回的127,因此最好能再检查errno来确认执行成功。

附加说明:在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。

5. 范例:

#include <stdlib.h>
main()
{
system("ls -al /etc/passwd /etc/shadow");
}

执行:

-rw-r--r--  root root  Sep   : /etc/passwd
-r--------- root root Sep : /etc/shadow

c语言system()介绍的更多相关文章

  1. Velocity语言的介绍

    Velocity语言的介绍 2016-09-06 15:39:25 语言介绍 Velocity是一种Java模版引擎技术,是一个基于Java的模板引擎(template engine).她允许任何人简 ...

  2. 【个人笔记】002-PHP基础-01-PHP快速入门-02-PHP语言相关介绍输

    002-PHP基础-01-PHP快速入门 02-PHP语言相关介绍 1.PHP是什么 Hypertext Preprocessor超文本预处理器 是一种通用开源脚本语言 Personal Home P ...

  3. Cocos2d-x 脚本语言Lua介绍

    Cocos2d-x 脚本语言Lua介绍 本篇博客记录Lua学习.学习来自eoe论坛,Lua语言开发Cocos2d-x游戏入门视频教程,猛戳下面地址: http://www.eoeandroid.com ...

  4. 一、Go语言开篇介绍

    Go语言开篇介绍 Go语言 是Google公司 在2007开发一种静态强类型.编译型语言,并在 2009 年正式对外发布. Go语言以其近C的执行性能和近解析型语言的开发效率,以及近乎于完美的编译速度 ...

  5. X Window System介绍

    1.概述     X Window System是1984年由麻省理工学院(MIT)和DEC公司共同开发研究的,是执行在UNIX系统上的视窗系统.严格地说,X Window System并非一个软件, ...

  6. Lua语言的介绍和编程语言的归类

    Lua 本条目介绍的是一种编程语言.关于关于Lua在维基百科中的使用,请见"维基百科:Lua".关于"Lua"一词的其他意思,请见"卢阿". ...

  7. go语言基本介绍

    Golang发展历史 1. 诞生历史a. 诞生与2006年1月2号下午15点4分5秒b. 2009发布并正式开源c. 2012年第一个正式版本Go 1.0发布d. 截至到2017年8月24号Go 1. ...

  8. Scheme语言--简单介绍

    一年前事实上有时间看完SICP这本书,后来由于种种原因,一直没有继续再学.由于SICP中使用Scheme确实应用不多.在Java,C++的语言眼里,Scheme确实非常另类.现在MIT已经放弃了使用S ...

  9. Java语言的介绍

    1. 计算机语言 语言:沟通交流的方式 计算机语言:人与计算机之间的交流方式 java是一门计算机编程语言,也是意大利自行车品牌 软件工程师,java开发工程师 <--------------- ...

随机推荐

  1. eas之新建窗口

    public void actionObjectProp_actionPerformed(ActionEvent e)          throws Exception {     UIContex ...

  2. Sql Server 查询性能查看

    dbcc dropcleanbuffers --清除buffer pool里的数据页面 dbcc freeproccache --清除memtoleave和buffer pool里的执行计划内存 se ...

  3. 第1章 面向对象的JavaScript

    针对基础知识的每一个小点,我都写了一些小例子,https://github.com/huyanluanyu1989/DesignPatterns.git,便于大家理解,如有疑问,大家可留言给我,最近工 ...

  4. 利用Redis锁解决高并发问题

    这里我们主要利用Redis的setnx的命令来处理高并发. setnx 有两个参数.第一个参数表示键.第二个参数表示值.如果当前键不存在,那么会插入当前键,将第二个参数做为值.返回 1.如果当前键存在 ...

  5. Ecshop模板中html_options用法详解

    程序部分 <?php $smarty->assign('status_list', $_LANG['cs']); // 订单状态 $smarty->display("ind ...

  6. Git 基础教程 之 创建版本库

    一,选择一个合适的地方,创建空目录,下面两种方法都可 ①   手动新建 ②   使用命令: mkdir pythonwork 二,初始化,使目录变成Git可管理的仓库        执行: git i ...

  7. ASP.NET Core多平台部署 (Windows Server+IIS与CentOS 7+Nginx)

    一,Windows Server+IIS部署 1,安装配置IIS,这个应该都不用多说了,教程一堆 2,下载安装.NET Core Runtime 与 .NET Core SDK,下载请点击下载地址,如 ...

  8. ro的session

    1.需要session管理器,根据需要选择: 2.需要一个login和logout的服务.注意:设定TRORemobteDataMedule.sessionmanager,但要设定TRORemobte ...

  9. zuul 路由网关

    一.阐述 Zuul 包含了对请求的路由和过滤两个主要的功能: 路由功能:负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础: 滤器功能:负责对请求的处理过程干预,是实现请求校验.服务 ...

  10. hdu 2586 lca在线算法(朴素算法)

    #include<stdio.h> #include<string.h>//用c/c++会爆栈,用g++ac #define inf 0x3fffffff #define N ...