system(执行shell 命令)
相关函数
        fork,execve,waitpid,popen
表头文件
        #i nclude<stdlib.h>
定义函数
        int system(const char * string);
函数说明
        system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命>令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。
返回值
=-1:出现错误
=0:调用成功但是没有出现子进程
>0:成功退出的子进程的id
        如果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。

linux的system () 函数详解相关推荐

  1. Linux下system () 函数详解简介

    (执行shell 命令) 相关函数 fork,execve,waitpid,popen 表头文件 #include<stdlib.h> 定义函数 int system(const char ...

  2. linux下system函数详解

    一.system函数的简单介绍 头文件 #include <stdlib.h>函数定义int system(const char * string); 函数说明 system()会调用fo ...

  3. linux 系统函数调用脚本文件,Linux系统调用fsync函数详解

    Linux系统调用fsync函数详解 发布时间:2013-11-14 19:55:10   作者:佚名   我要评论 Linux fsync函数主要用于将同步内存中所有已修改的文件数据到储存设备,多用 ...

  4. linux下readlink函数详解

    linux下readlink函数详解 相关函数: stat, lstat, symlink 表头文件: #include <unistd.h> 定义函数:int  readlink(con ...

  5. system()函数详解

    windows下system () 函数详解 windows操作系统下system () 函数详解(主要是在C语言中的应用) 函数名: system 功 能: 发出一个DOS命令 用 法: int s ...

  6. Linux 文件锁 fcntl 函数详解

    Linux 文件锁 fcntl 函数详解 #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd); ...

  7. Linux中fork()函数详解

    Linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事, ...

  8. linux 中 sigaction 函数详解

    linux 中 sigaction 函数详解 一.函数原型 sigaction 函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作) int sigaction(int signum, ...

  9. linux磁盘同步函数,Linux系统调用fsync函数详解

    功能描述: 同步内存中所有已修改的文件数据到储存设备. 用法: #include int fsync(int fd); 参数: fd:文件描述词. 返回说明: 成功执行时,返回0.失败返回-1,err ...

最新文章

  1. 你的接口,真的能承受高并发吗?
  2. 英学者研究60亿次通话记录发现:好友再多也没用,最好朋友就4个
  3. 2013cvpr的总结
  4. mysql的ERROR:1042
  5. python numpy矩阵的旋转, 转置, 正对角线镜像, 副对角线镜像, 行交换, 列交换操作 rot90()
  6. 链表之CIRCLEQ
  7. 【Android】自带Theme
  8. 这里有众多领域的数据集,然后还有一百万奖金等你来战!
  9. Oracle数据库中正确的导入dmp数据库文件
  10. linux下tab作用的描述?
  11. CentOS安装并设置MariaDB
  12. Ajax之搭建一个基本的Ajax框架(技术分析篇)
  13. PHP-基于ipip.net制作的IP查询接口源码
  14. vue 引入qunee_(原创) 工作流程图的树形展示-使用qunee插件实现
  15. TVS管的作用与原理是一样吗?
  16. G1的基本概念(G1源码分析和调优读书笔记)
  17. 分析在线直播答题应用基础架构
  18. 某同学使用计算机求,【判断题】某同学计算机考试成绩80分,这是统计指标值...
  19. 模拟电子入门需要掌握的点(上)
  20. 钢铁集团的混合云灾备

热门文章

  1. 平板安装python_在CentOS上安装Python3的三种方法
  2. python求阶乘之和_python计算阶乘前n项和
  3. mysql中如何卸载插件_Eclipse中如何卸载插件
  4. Sublime介绍安装和使用(转载)
  5. 一文读懂视频监控系统全过程内容
  6. 飞畅科技-交换机的三种交换方式详解
  7. 485转换器产品类型介绍
  8. 【渝粤教育】电大中专混凝土结构作业 题库
  9. 【渝粤教育】广东开放大学 地基与基础 形成性考核 (27)
  10. mysql创建连接失败怎么办,MYSQL在Windows 2003上连接不上的解决方法