当前位置:  技术问答>linux和unix

如何在C语言编程中调用linux系统终端下的命令?

    来源: 互联网  发布时间:2016-02-22

    本文导语:  linux终端中的很多命令,如cd ls tar 等很多系统命令.如果我想在编的c程序中直接调用这些命令,应该如何做? | system(执行shell 命令)   相关函数  fork,execve,waitpid,popen   表头文件  #inclu...

linux终端中的很多命令,如cd ls tar 等很多系统命令.如果我想在编的c程序中直接调用这些命令,应该如何做?

|
system(执行shell 命令)  
相关函数  fork,execve,waitpid,popen
 
表头文件  #include
 
定义函数  int system(const char * string);
 
函数说明  system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。
 
返回值  如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值。如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功。
 
附加说明  在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。
 
范例  #include
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/shadow

==============
http://man.chinaunix.net/develop/c&c++/linux_c/default.htm

|
1.system
2.popen
3.fork + exec

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 2013年7月和2013年8月编程语言排行榜
  • kliyx是使用C++语言编程的,还是用C语言编程的?
  • 苹果OS X和IOS下最新编程语言swift介绍
  • 动态编程语言 LIME编程语言
  • 2017 年热门编程语言排行榜出炉,你的语言上榜没?
  • LINUX下 C语言编程中 DIR 是做什么用的~?
  • PHP编程语言介绍及安装测试方法
  • 新建 一 LINUX C语言编程交流群 大家若有兴趣就加入一起交流哈
  • 各位大侠,请推荐几本在UNIX环境下使用标准C语言编程的好书.谢谢啊!!!
  • unix/linux系统,支持那些语言编程??
  • 在unix 中怎么实现 c 语言编程
  • 初学Linux要看什么书?, 请问Linux下C语言编程怎么设置环境?
  • 请问在linux中,怎样用c语言编程来实现对计算机的日期和时间的修改啊?
  • 如何用C语言编程启动linux下的shell命令
  • 在Linux的Eclipse中用C语言编程,求助
  • 请问:linux 下 C语言编程 , 如何将 串口 由 全双工 变化为 半双工 通讯 方式?
  • 为什么要学linux环境下c语言编程
  • 问个c语言编程的初级问题
  • linux 下c 语言编程
  • linux下c语言编程问题 help !!!
  • C语言编程——操作系统中的文件管理!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3