c语言执行linux命令
你的问题问得模棱两可的。
按照我的理解有三个意思,1。在windows或mac系统下写的可以正常编译的C源代码,能不能再linux直接编译执行。
2,在windows或mac系统下编译好的C程序可以不可以直接拿到linux下执行。
3.在linux系统下可不可以执行C语言写的程序。
当然应该不可能是地三个意思了。
如果是第二个意思,那么答案是:肯定不能执行。因为C语言是于系统有关的。所以在window下编译的可执行文件,和在linux下是不一样的。
如果是第一个意思。那么就要看情况了。
如果你的源代码完全是使用的标准C写的那么应该是可以的例如写一个hello world程序。
如果你用了window的系统调用。那么就不行了。
② Linux中,运行一个C语言程序如何运行
在Linux中,可以使用gcc编译器编译C语言程序,生成可执行文件,并最终执行。
具体步骤如下:
1、编译。
由.c文件生成.o文件,写作:
gcc a.c -o a.o -c这个命令可以将a.c编译成a.o。
如果存在多个文件,可以逐个编译,即a.c
b.c...
生成a.o
b.o...等。
2、链接。
由.o文件生成可执行文件,写作:
gcc a.o b.o c.o -o a.out这个命令将a.o
b.o
c.o三个目标文件,生成可执行文件a.out。
3、执行。
调用命令:
./a.out即可执行生成的可执行文件a.out。
4、注意事项:
(1)
当文件较少时,可以省略目标文件步骤,编译链接一步执行,如:
gcc a.c b.c c.c -o a.out(2)
提供的示例为最基础的编译功能,在实际应用中gcc有很丰富的编译选项,根据需求进行添加。
(3)
当项目包含文件较多时,可以使用makefile进行管理。
③ 写一个C语言程序: 能修改Linux 主机的IP、DHCP、DNS 等设置
可以调用system()函数。把linux系统命令拼成字符串,然后调用system去执行这个字符串就可以了。修改系统配置,需要root身份。
1、system函数:
原型:int
system(const
char
*
command);
功能:执行
dos(windows系统)
或
shell(Linux/Unix系统)
命令,参数字符串command为命令名;
说明:在windows系统中,system函数直接在控制台调用一个command命令。在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返回原调用的进程;
头文件:stdlib.h;
返回值:命令执行成功返回0,执行失败返回-1。
2、例程:
#include<stdio.h>
#include<stdlib.h>
int main(){
system("del C:\\123.txt");//在控制台中,执行命令del C:\\123.txt,删除C盘目录下的123.txt文件
return 0;
}
④ C语言基于Linux下如何运行程序
#include <stdio.h>
int main(void)
{
printf(“hello world!!”);
return 0;
}
然后在终端输入
$ gcc –o hello hello.c
$ /tmp/hello
注:hello.c文件放在/tmp目录下,通过gcc -o hello hello.c命令生成一个hello文件,它是一个可执行文件,然后直接执行,就可以运行该程序了。
⑤ 在Linux系统中,如何运行一个C语言程序
1、打开kali linux的终端。创建一个文件并命名为test.c。在终端输入:touch test.c。
⑥ linux怎么在c语言程序里运行外部命令
使用系统函数:
#include<unistd.h>
int execvp(const char *file ,char * const argv []);
execvp()会从PATH 环境变量所指的目录中查找符合参数file 的文件名(就是可执行程序名,外部命令名),找到后便执行该文件,然后将第二个参数argv传给该欲执行的文件(可执行程序的参数,或者说外部命令的参数)。
⑦ 如何在C语言编程中调用linux系统终端下的命令
system(执行shell 命令)
相关函数 fork,execve,waitpid,popen
表头文件 #include<stdlib.h>
定义函数 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<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/shadow
⑧ 怎么用linux写c语言
Linux正在成为开发人员的编程天堂,成为开源和免费操作系统。 Turbo C编译器已经是一种编译程序的旧方法,所以让程序员转向Linux以获得新的编程环境。 在本文中,我们将解释如何编写,编译和运行一个简单的C程序。 这将成为您迁移到可以在Linux上编写和执行的更复杂和有用的C程序的基础。
我们在Ubuntu 18.04 LTS系统上运行了本文中提到的步骤和命令。
我们将使用Linux命令行工具Terminal,以编译一个简单的C程序。 要打开终端,您可以使用Ubuntu Dash或Ctrl + Alt + T快捷方式。
第1步:安装build-essential软件包
为了编译和执行C程序,您需要在系统上安装必要的软件包。 在Linux终端中以root用户身份输入以下命令:
sudo apt-get install build-essential
系统会要求您输入root用户密码; 安装过程将在此之后开始。 请确保您已连接到互联网。
第2步:编写一个简单的C程序
安装必要的软件包之后,让我们编写一个简单的C程序。
打开Ubuntu的图形文本编辑器,将以下示例程序写入或复制到其中:
#include<stdio.h>
int main()
{
printf("nA sample C program www.linuxidc.comnn");
return 0;
}
然后使用.c扩展名保存文件。 在这个例子中,我将我的C程序命名为linuxidc.c
或者,您可以通过gedit中的终端编写C程序,如下所示:
gedit linuxidc.c
这将创建一个.c文件,您可以在其中编写和保存程序。
第3步:使用gcc编译C程序
在终端中,输入以下命令以生成您编写的程序的可执行版本:
句法:
$ gcc [programName].c -o programName
示例:
$ gcc linuxidc.c -o linuxidc
⑨ 有关在linux下运行C语言的问题。。。
应该是运行的时候没有输入参数有关。
intmain(intargc,char*argv[])中的intargc,char*argv[]是主函数的参数,在运行时需要传入。如是用vi中编写用gcc编译的话,可以用:
./[文件名]1,123(回车)
这样子来进行传参!第一个参数是指后边有1个有效参数。
./[文件名]2,1231,123(回车)
这样子则表明后边有两个有效参数,分别为1231和123希望对你有用
⑩ linux下如何用c语言调用shell命令
可以使用system函数调用。
system("shell_command");
可以实现在shell中调用shell_command的作用。
比如设置网卡IP为192.168.1.100,可以写作
system("ifconfig
eth0
192.168.1.100");