您的当前位置:首页正文

linux c编程

来源:我们爱旅游


linux c编程引言

linux的是一操作系统,其本质是一系列的任务调度,内存管理,虚拟文件系统等算法的集合.它告诉你的计算机怎

么充分利用你机器上的资源.linux内核的源代码是用C语言写的(源代码也见于pub.kernel.org).C语言是一门编

程语言,其本质是把一些C语言关键词描述的算法转换为计算机可以直接运行的二进制机器语言的整体.想把C语

言写成的代码编译成二进制机器语言要使用C编译器(C compiler),C编译器是一个软件,它可以把C语言写成的代

码转换成机器可以执行的二进制文件. 世界上有多款这样的软件,如gcc. linux内核及linux环境下可用的所有

软件都是用gcc编译的.

简而言之,linux是一个操作系统,是一个各种应用程序工作的环境. linux的内核,即这个操作系统的核心代码,

是用c语言编写,并用gcc编译的. linux内核是一套描述系统工作方式的算法,C语言是其实现途径. C语言也可以

用来编译其它的代码。

Linux是目前非常流行的一款操作系统,而C语言是Linux操作系统中的核心语言,掌握Linux环境下的C语言开发

有着非常重要的意义。我们在linux下做任何事都离不开C。现在也越来越流行unix/linux下的c编程。

Linux系统下C语言及其编程环境

Linux系统下C语言及其编程环境的介绍,系统编程的所有主题——文件和目录、进程、线程、信号、进程间通

信、网络编程和图形界面编程、出错处理、库的创建与使用、编写安全的代码、数据结构、相关工具集、应用

程序开发等。

linux C编译器的选择

在Linux平台下,可用任意(默认VI)一个文本编辑工具编辑源代码,但笔者建议使用emacs软件,它具备

语法高亮、版本控制等附带功能。

GCC编译器

linux C下面gcc编译器的操作

GCC是Linux平台下最重要的开发工具,它是GNU的C和C++编译器,其基本用法为:

gcc [options] [filenames]

options为编译选项,GCC总共提供的编译选项超过100个,但只有少数几个会被频繁使用,我们仅对几个常用选

项进行介绍。

如:

#gcc -g test.c 表示将test.c编译成可以执行的c程序文件,默认编译后的文件名为a.out

#gcc -o test test.c 添加了-O的参数表示将test.c编译并重命令为test,这样就不会跟直默认的文件名混乱

例如编译一输出很普通同时也很经典的“Hello World”的程序:

先在目录下建立相应的文件helloworld,用VI或其它的编译器打开这个文件,往里面输入想要执行的程序。

#include \"stdio.h\"

int main(){

printf(\"hello world!\");

}

完成之后,按下ESC按输入:wq!回车,接下来进行编译

#gcc -o helloworld helloword.c这里表示将我们的helloworld文件进行编译为helloworld.c这个文件,接下

来我们输入./helloworld.c就可以得到我们的想的程序结果输出helloworld。

linux下gcc中文件后缀说明:

1、以.c为后缀的文件,是C语言源代码文件

2、以.a为后缀的文件,是由目标文件构成的档案库文件

3、以.C、.cc或.cxx为后缀的文件,是C++源代码文件

4、以.h为后缀的文件,是程序所包含的头文件

5、以.i为后缀的文件,是已经预处理的C源代码文件

6、以.ii为后缀的文件,是已经预处理的C++源代码文件

7、以.m为后缀的文件,是Objective-C源代码文件

8、以.o为后缀的文件,是编译后的目标文件

9、以.s为后缀的文件,是汇编语言源代码文件

10、以.S为后缀的文件,是经过预编译的汇编语言源代码文件

C程序、传统C++常用的头文件:

#include //设定插入点

#include //字符处理

#include //定义错误码

#include //浮点数处理

#include //文件输入/输出

#include //参数化输入/输出

#include //数据流输入/输出

#include //定义各种数据类型最值常量

#include //定义本地化函数

#include //定义数学函数

#include //定义输入/输出函数

#include #include #include #include #include #include 标准的C++头文件:

#include #include #include //定义杂项函数及内存分配函数

//字符串处理

//基于数组的输入/输出

//定义关于时间的函数

//宽字符处理及输入/输出

//宽字符分类

//STL通用算法

//STL位集容器

//字符处理

#include //定义错误码

#include //复数类

#include //定义本地化函数

#include #include #include #include #include #include #include #include #include #include //定义数学函数

//定义输入/输出函数

//定义杂项函数及内存分配函数

//字符串处理

//定义关于时间的函数

//STL双端队列容器

//异常处理类

//文件输入/输出

//STL定义运算函数(代替运算符)

//定义各种数据类型最值常量

#include //STL线性列表容器

#include //STL映射容器

#include //参数化输入/输出

#include #include #include #include #include #include #include #include #include #include //基本输入/输出支持

//输入/输出系统使用的前置声明//数据流输入/输出

//基本输入流

//基本输出流

//STL队列容器

//STL集合容器

//基于字符串的流

//STL堆栈容器

//标准异常类

#include //底层输入/输出支持

#include //字符串类

#include //STL通用模板类

#include #include #include 普通的一个linux C程序代码:#include \"fcntl.h\"

#include \"stdio.h\"

#include \"stdlib.h\"

#include \"string.h\"

#define WHITESPACE \" \"

typedef struct command

//STL动态数组容器

//宽字符处理及输入/输出//宽字符分类

{

char *name;

int argc;

char *argv[64];

}Command;

void printUser()

{

char *promoteString = \"KimMin$:\";

printf(\"%s\

}

int parseCommand(char *Line,struct command *cmd)

{

int argc ;

char **Cline;

Cline = &Line;

argc = 0 ;

cmd->argv[argc] = (char*)malloc(16);

while((cmd->argv[argc] = (char*)strsep(Cline,WHITESPACE)) != NULL)

{

cmd->argv[++argc] = (char*)malloc(16);

}

cmd->argc = argc-1;

cmd->name = (char*)malloc(sizeof(cmd->argv[0]));

strcpy(cmd->name,cmd->argv[0]);

}

int main()

{

Command cmd;

char buffer[20];

int i;

printUser();

fgets(buffer,20,stdin);

parseCommand(buffer,&cmd);

printf(\"%s\\n\

for (i=1; i{

printf(\"%s\\n\

}

return 0;

}

参考学习站点:

http://man.chinaunix.net/develop/c&c++/linux_c/default.htm

http://hi.baidu.com/ylinuxs/blog/item/8b3bd293f1284d9da977a41d.html

http://www.youku.com/playlist_show/id_397478.html?page=1&mode=pic&ascending=1

Ubuntu下C/C++ IDE开发环境的搭建:

http://hi.baidu.com/ylinuxs/blog/item/f929d157fcab3140564e00bf.html

Linux下C编程百度文

库:http://wenku.baidu.com/view/df843113a2161479171128be.html

因篇幅问题不能全部显示,请点此查看更多更全内容