用C语言编写的程序,能不能直接在Linux下运行

用C语言编写的程序,能不能直接在Linux下运行,第1张

你的问题问得模棱两可的。

按照我的理解有三个意思,1。在windows或mac系统下写的可以正常编译的C源代码,能不能再linux直接编译执行。

2,在windows或mac系统下编译好的C程序可以不可以直接拿到linux下执行。

3在linux系统下可不可以执行C语言写的程序。

当然应该不可能是地三个意思了。

如果是第二个意思,那么答案是:肯定不能执行。因为C语言是于系统有关的。所以在window下编译的可执行文件,和在linux下是不一样的。

如果是第一个意思。那么就要看情况了。

如果你的源代码完全是使用的标准C写的那么应该是可以的例如写一个hello world程序。

如果你用了window的系统调用。那么就不行了。

先确保你的c程序没有调用win下专有的api,比如win32api或net等,

如果有,就需要另写接口层。最好能只调用posix库或跨平台的库,或完全原创的算法库。

c程序满足和win专有接口能脱离直接关系,就能在linux下编译。

Linux中启动另一个可执行文件或程序用system函数最理想了,这个函数将在你编写的那个程序的内部启动另一个程序,从而创建一个新进程,并等待这个进程执行完毕退出。如果正常执行,system函数将返回被执行程序的退出码;如果无法运行这个程序,将返回错误代码127;如果是其他错误,返回-1。这个函数的原型是:

#include <stdlibh>

int system(const char string);

参数string是将要执行的程序的命令字符串。

还有一种执行外部程序的方法是exec系列函数,但这个系列的函数都是将当前进程的替换成新进程,也就是说原来的进程不存在了。

redhat linux 默认安装选项已装有 gcc 和 glibc。是可以编译c程序的。以你的问题的大致 *** 作为

编译: hello 为编译链接后的可执行性文件,helloc为源文件

gcc -o hello helloc

运行:

/hello

linux终端下,编译C语言程序步骤为:

采用vi进行源代码编写,编写完成后,:wq存盘退出,如:

vi testc

在命令行下,运行gcc编译程序,生成执行码,如:

gcc -o test testc

-o 表示指明生成的执行码名称

运行编译后的执行码

/test

GCC是Linux *** 作系统下一个非常重要的源代码编译工具,C、C++都可以通过gcc编译后来执行,案例如下: 在屏幕上打印"Hello,Linux"

#include<stdioh>

#include<stdlibh>

int main(int argc,char argv)

    {

        printf("Hello,Linux\n");

        exit(0);

    }

将源文件保存为helloc,开始进行编译

$gcc -o hello helloc

编译成功完成后,在当前路径下,生成一个名为hello的文件,然后执行

$/hello

在屏幕上,将会看到打印结果:Hello,Linux

以上就是关于用C语言编写的程序,能不能直接在Linux下运行全部的内容,包括:用C语言编写的程序,能不能直接在Linux下运行、怎样将windows下写的c程序在linux下编译运行,谢谢、我想在linux下写一个c程序调用linux的可执行文件或者程序,怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9290451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存