189 8069 5689

c语言执行linux命令 c程序执行linux命令

在Linux系统中,如何运行一个C语言程序?

我不太明白你说的是什么意思,Linux下的C编程一般是通过gcc实现的。\x0d\x0a例如,创建了一个hello.c文本,在文本中写入\x0d\x0a#include\x0d\x0aintmain(void)\x0d\x0a{\x0d\x0aprintf(“helloworld!!”);\x0d\x0areturn0;\x0d\x0a}\x0d\x0a然后在终端输入\x0d\x0a$gcc_ohellohello.c\x0d\x0a$/tmp/hello\x0d\x0a注:hello.c文件放在/tmp目录下,通过gcc-ohellohello.c命令生成一个hello文件,它是一个可执行文件,然后直接执行,就可以运行该程序了。

10年积累的成都做网站、成都网站建设、成都外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先制作网站后付款的网站建设流程,更有永春免费网站建设让你可以放心的选择与我们合作。

linux下如何用c语言调用shell命令

在c语言中调用shell命令的方法实现。

c程序调用shell脚本共有两种方法

:system()、popen(),分别如下:

system()

不用自己去创建进程,系统已经封装了这一步,直接加入自己的命令即可

popen()

也可以实现执行的命令,比system

开销小

以下分别说明:

1)system(shell命令或shell脚本路径);

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

来确认履行

成功

system命令以其简略

高效的作用得到很很广泛

的利用

,下面是一个例子

例:在/tmp/testdir/目录下有shell脚本tsh.sh,内容为

#!/bin/sh

wget

$1

echo

"done!"

2)popen(char

*command,char

*type)

popen()

会调用fork()产生

子历程,然后从子历程中调用/bin/sh

-c来履行

参数command的指令。参数type可应用

“r”代表读取,“w”代表写入。遵循此type值,popen()会建立

管道连到子历程的标准

输出设备

或标准

输入设备

,然后返回一个文件指针。随后历程便可利用

此文件指针来读取子历程的输出设备

或是写入到子历程的标准

输入设备

中。此外,所有应用

件指针(file*)操作的函数也都可以应用

,除了fclose()以外。

返回值:若成功

则返回文件指针,否则返回null,差错

原因存于errno中。注意:在编写具suid/sgid权限的程序时请尽量避免应用

popen(),popen()会继承环境变量,通过环境变量可能会造成系统安全的问题。

例:c程序popentest.c内容如下:

#include

main

{

file

*

fp;

charbuffer[80];

fp=popen(“~/myprogram/test.sh”,”r”);

fgets(buffer,sizeof(buffer),fp);

printf(“%s”,buffer);

pclose(fp);

}

c语言可以在linux下执行吗

c语言可以在linux下执行。

Linux下使用最广泛的C/C++编译器是GCC,大多数的Linux发行版本都默认安装,不管是开发人员还是初学者,一般都将GCC作为Linux下首选的编译工具。

GCC(GNU Compiler Collection,GNU编译器集合),是一套由 GNU 开发的编程语言编译器。


本文题目:c语言执行linux命令 c程序执行linux命令
文章起源:http://jkwzsj.com/article/doiigpc.html

其他资讯