ubuntu用c语言,linux编写c语言

Linux操作系统中默认安装的C语言编译系统是

Linux操作系统中默认安装的C语言编译系统是GCC(GNU Compiler Collection),是Linux下最常用的C语言编译器,是GNU项目中符合ANSI,C标准的编译系统,能够编译用C、Object C等语言编写的程序。

同时它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula,3和Ada等。

C语言的标准

1.1 K,RC

1973年,Dennis M Ritchie设计和实现了C语言,从那以后使用者逐渐增加。

1978年,Kernighan和 Ritchie合著了《The C Programming Language》,这本书定义的C语言被称为 K,RC。

1.2标准 C

随着C语言使用日益广泛,出现了许多新问题,人们迫切希望对C语言进行标准化。

第一个标准:C89

1983年,ANSI成立了一个委员会X3J11,对C语言进行标准化。

1989年,ANSI批准了第一个C语言标准 X3,159-1989,并于1990年公布,被称为 ANSIC、C89或 C90。

1990年,这个标准又被批准为ISO标准:ISO,IEC 9899:1990。

ANSIC标准被ISO采纳,并且ISO发布的修订版也被ANSI采纳,因此ANSI标准和ISO标准实际上没有技术区别。这些名称的含义是相同的:ANSI C、ISO C、标准C。

1994年和1996年,ISO发布了两个技术更正,更正了1990ISOC标准中的错误。

第二个标准:C94

1995年,ISO发布了1990ISOC标准的一个补充,称为AMD1。扩充后的标准被称为C94或C95。

第三个标准:C99

1999年,ISO发布了一个新版本的ISOC标准:ISO,IEC9899:1999,称为C99。

2001年、2004年和2007年,ISO发布了三个技术更正,更正了1999ISOC标准中的错误。

第四个标准:C11

2011年,ISO发布了一个新版本的ISOC标准:ISO,IEC9899:2011,称为C11。C11是 C语言的最新标准。

1.3 GNUC

1984年,Richard Stallman发起了GNU计划,它的目标是开发一个完整且自由的Unix-like操作系统(GNU系统)。

GNU系统是一个完整的操作系统,包括操作系统内核和各种工具软件。各种GNU系统的变种(例如Redhat、Ubuntu等)已经被广泛使用,它们使用的操作系统内核都是Linux。虽然这些系统经常被称为Linux,但准确地说,它们是GNU/Linux系统。

GNU在编写Linux时扩展了标准C,称为GNUC。

GNU C的扩展详见:Extensions to the C Language Family

GNU C也称为Linux C,一般用于Linux上的开发,而标准C可以跨平台。

GNU C使用的编译器是GCC。

怎么在linux中编写c语言程序

首先需要有一个安装好gcc的Linux系统,然后进行代码的编写进行测试演示

工具:

Ubuntu12.04

步骤

进入Linux系统后,启动一个shell命令终端,在Ubuntu的三键启动终端方法是同时按下Ctrl键+Alt键+t启动后如下图所示:

在终端下敲入命令gedit helloworld.c后按下回车键。这个命令会用gedit软件打开文件名为helloworld.c的文件,如果该文件不存在工作目录,则gedit软件会自动新建一个名为helloworld.c的文件。命令如下图所示:

gedit软件启动后操作类似Windows下的记事本,编辑代码如图所示,并保存退出。图中的代码为:

现在回到终端操作,输入命令gcc helloworld.c,按下回车键进行编译,稍等片刻编译完成,请看图。如果不是如图所示结果也不要着急,检查下代码是否一样。

上面使用gcc命令把helloworld.c文件转换为了名为a.out的可执行文件输入命令./a.out就可以运行程序了,请看运行结果图。

C语言判断Ubuntu是32bit还是64bit

方法有很多,基本可以分为命令方式和纯C语言方式:

一、命令方式。

判断Ubuntu是32位还是64位,常规方法是使用uname命令,即

uname--m

如果结果为x86_64那么则是64位,否则为32位。

在C语言中,可以通过

FILE*fp=popen("uname--m");

然后读取fp指向的管道文件数据,获得结果,如:

chars[100];

fgets(s,100,fp);//读取数据。

if(strncmp("x86_64",s,6)==0)//64位

printf("OSis64bits\n");

elseprintf("OSis32bits\n");

二、使用纯C方式。

C的特点是有指针,而指针表示的是内存地址,其实也就是OS的位数。

所以只需要求得任意的指针类型的sizeof,乘8即为操作系统位数。

intget_bits(void)

{

returnsizeof(char*)*8;//获取char*类型的大小,乘8即为位数。

}

阅读剩余
THE END