
根据调用需求,可以分为两种:
一、仅执行系统命令,不需要该命令的打印结果。
这种情况可以用system函数。形式为
system(cmd)
其中cmd为char*类型的字符串,包含要执行的命令,命令的执行结果会输出到标准输出。
比如
system("mkdir test")这个执行,会在当前文件夹下创建test文件夹。
二、需要命令执行的打印。
虽然同样可以使用system并重定向到文件,然后打开文件读取,最终删除文件。但这样做比较繁琐,更好的做法是使用popen。
FILE *fp = popen(cmd)
执行cmd中的命令,然后可以以C文件 *** 作方式,读取命令的输出结果。比如:
if((fp=popen("pwd","r"))==NULL)//执行获取当前目录的系统命令pwd。{
printf("执行失败\n")//fp为NULL表示命令执行失败。
}
else
{
char s[100]
while(fgets(s, 100, fp))//获取文件内容。
printf("%s", s)//输出结果。
pclose(fp)//关闭。
}
1、打开kali linux的终端。创建一个文件并命名为test.c。在终端输入:touch test.c。
2、可以看到已经生成了一个后缀为test.c的源文件。然后用vim工具打开这个文件并编写代码。在终端中输入:vim test.c或者gvim test.c打开这个文件并编写代码。
3、编写完了这个代码。现在开始编译源文件。在终端中输入:gcc test.cgcc是linux自带的c语言编译器。如果是windows则要用ide工具来编译。linux系统一般写C语言用gcc +vim+gdb三个自带的工具就可以了。
4、打完gcc test.c编译完C源文件。然后就可以看见a.out的文件。一般linux系统就默认为a.out为编译完的文件。现在运行a.out文件。在a.out文件的目录下打开终端并输入./a.out就是运行文件了。
5、如果想要编译完的文件名不要用a.out文件。就可以在编译时打入.gcc test.c -o test.out然后就可以看见有一个test.out.文件 了。-o后面跟着的编译生成的文件名。
6、再运行test.out在终端中输入./test.out结果如图。这样在linux系统下编译并运行C语言就完成了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)