我想在linux下写一个c程序调用linux的可执行文件或者程序,怎么做

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-23
我想在linux下写一个c程序调用linux的可执行文件或者程序,怎么做

Linux C编程中,调用另一个可执行文件或调用命令用system函数最简单了,这个函数原理是在你编写的那个程序的内部启动另一个程序或命令,从而创建一个新进程,并等待这个进程执行完毕退出。如果正常执行,system函数将返回被执行程序或命令的退出码;如果无法运行这个程序或命令,将返回错误代码127;如果是其他错误,返回-1。这个函数的原型是:
#include
int system(const char *string);
参数string是将要执行的程序文件名或路径,如果是启动一个命令就是一个命令字符串。
还有一种执行外部程序的方法是exec系列函数,一般是在fork的子进程里面调用exec系列函数,那主进程里直接调用exec系列不行吗,为什么要fork再在子进程里调用呢?因为exec系列的函数(包括execl函数)是将当前进程替换成新进程,这里的当前进程就是你编写的程序,也就是说新进程启动后调用exec函数的进程就不存在了,所以exec系列函数调用之后的代码就不会再执行了。如果你不放在fork子进程里面,那你编写的程序的主进程在执行execl函数后就完全不存在了,所以exec系列函数的使用都是先fork然后在子进程里面调用。因为exec系列函数都要使用fork调用,所以我一般是用system函数。

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语言就完成了。

Linux中启动另一个可执行文件或程序用system函数最理想了,这个函数将在你编写的那个程序的内部启动另一个程序,从而创建一个新进程,并等待这个进程执行完毕退出。如果正常执行,system函数将返回被执行程序的退出码;如果无法运行这个程序,将返回错误代码127;如果是其他错误,返回-1。这个函数的原型是:
#include <stdlib.h>
int system(const char *string);
参数string是将要执行的程序的命令字符串。
还有一种执行外部程序的方法是exec系列函数,但这个系列的函数都是将当前进程的替换成新进程,也就是说原来的进程不存在了。

调用 spawnl 或exec 函数 或system函数

11 根文件系统并添加自己的程序



  • "如何在Linux环境下使用GCC和GDB进行C语言程序开发与调试?"
    答:1.1 Linux操作系统概述: Linux的架构和核心概念为C开发奠定了基础。1.2 Linux开发初步: 学习基本的Linux环境设置和项目初始化。1.3 Linux内核及库文件管理: 理解内核与库文件的组织与管理。1.4 Linux编码风格: 掌握遵循的编程规范和最佳实践。第2章: C语言开发工具 2.1 Linux开发工具: 介绍必备的...
  • linux怎么运行c程序
    答:1、打开linux系统,在linux的桌面的空白处右击。2、在弹出的下拉选项里,点击打开终端。3、在终端窗口中创建一个文件并命名为test.c。在终端输入touch test.c打开。4、在终端中输入vim test.c打开这个文件并编写代码。5、在终端中输入gcc test.cgcc编译源文件。6、在a.out文件的目录下在终端里输入....
  • linux如何编译c程序linux如何编译
    答:1、可以安装cygwin,Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnussolutions公司开发的自由软件,搜索官网下载即可,下载完成,安装的时候注意记得安装相关语言的编译器、解释器,在cygwin中生成Linux可执行文件。2、可以安装vmware、virtualpc等虚拟机,在虚拟机里安装linux系统,然后在linux系统中编...
  • Linux中,运行一个C语言程序如何运行
    答:1、打开kali linux的终端。创建一个文件并命名为test.c。在终端输入:touch test.c。2、可以看到已经生成了一个后缀为test.c的源文件。然后用vim工具打开这个文件并编写代码。在终端中输入:vim test.c或者gvim test.c打开这个文件并编写代码。3、编写完了这个代码。现在开始编译源文件。在终端中输入:...
  • 我想在linux下写一个c程序调用linux的可执行文件或者程序,怎么做
    答:Linux中启动另一个可执行文件或程序用system函数最理想了,这个函数将在你编写的那个程序的内部启动另一个程序,从而创建一个新进程,并等待这个进程执行完毕退出。如果正常执行,system函数将返回被执行程序的退出码;如果无法运行这个程序,将返回错误代码127;如果是其他错误,返回-1。这个函数的原型是:in...
  • 在Linux下用C语言编程
    答:如果你在DOS时代编写过程序,那么你也许知道在DOS下为了编写一个常驻内存的程序我们要编写多少代码了.相反如果在Linux下编写一个"常驻内存"的程序却是很容易的.我们只要几行代码就可以做到. 实际上由于Linux是多任务操作系统,我们就是不编写代码也可以把一个程序放到后台去执行的.我们只要在命令后面加上&...
  • 在Linux下如何开发C程序?
    答:1.利用编辑器把程序的源代码编写到一个文本文件中。比如编辑test.c程序内容如下:/*这是一个测试程序*/ include<stdio.h> int main(void){ printf("Hello Linux!");} 2.用C编译器GCC编译连接,生成可执行文件。gcc test.c 编译完成后,GCC会创建一个名为a.out的文件。如果想要指定输出文件...
  • 在linux中执行c程序在linux中执行
    答:通常情况下,任何基于Windows的exe程序都不能在LINUX下运行,这是因为它们的内核是不同的。但是可以通过在Linux上安装wine来运行exe程序。Wine(“WineIsNotanEmulator”的首字母缩写)是一个能够在多种POSIX-compliant操作系统(诸如Linux,macOS及BSD等)上运行Windows应用的兼容层。Wine不是像虚拟机或者...
  • 完全手册Linux系统下C程序开发详解目录
    答:Linux1.2 Linux安装步骤1.2.1 分区格式选择与Windows兼容1.2.2 Linux分区设置1.2.3 Red Hat 9.0的安装流程1.2.4 GRUB引导Linux在Windows中的配置1.3 VMware虚拟机安装1.3.1 VMware安装与虚拟机创建1.3.2 虚拟机使用技巧1.4 第一个C程序1.4.1 编写和理解C代码1.4.2 编译过程1.5 ...
  • linux编写c语言程序并使用gcclinux编写c语言程序
    答:怎么在linux下用vim编写一个C程序?先终端输入 vimtest.c 车进入vim编辑器再按a键进入编辑状态输入C语言语句:include intmain(){ printf("helloworld!n");} 按esc键退编辑状态再输入冒号(shift+冒号号键)紧跟着输入wq即输入 :wq 按车即推vim编辑器终端命令窗口(类似xp命令提示符)输入 gcctest....