`

linux下c开发

阅读更多
第一章 编程语言、c语言简介
程序语言的简单定义
什么是程序? 我们必须通过指令,指挥计算机执行我们想要做的动作。依照顺序执行一组指令就是程序。
程序的作用?指挥计算机干活。
程序的特征
程序是与计算机沟通的语言。
程序是由特定的语法与关键字构成。
程序是一行一行执行的。
程序的执行,从入口点开始,原则上由上而下,从左而右。
程序的演化
机器语言、汇编语言、高级语言、第四代语言、自然语言。
机器语言
是计算机唯一能够直接执行。
其它的语言必须先转化为机器语言。
指令由0与1组成,称为机器码。
指令难以记忆,但执行速度最快,
不同类型的机器有不同的机器码,不具备移植性。
汇编语言
相当接近于机器语言,称为低级语言。
用助记码代码机器码,比较容易记忆,如add。
必须进行汇编,转化成机器语言。
不具备移植性。
高级语言
离机器越来越远。
语法接近人类自然语言。
执行的单位不是指令,而是语句,一行语句对应多个指令。
开发效率越来越高。
必须编译成机器码。
移植性比较好。
第四代语言
4GL,也称为面向为问题的程序语言。
仅需告诉计算机“做什么”,不需要指挥计算机如何去做。
大大提高开发效率。
如SQL语言及各种查询语言,如基于xml的查询语言。
自然语言
运用人工智能,以接近口语的指令指挥计算机,但现在还不是很成熟,如语言识别,指纹识别。
编译与连接
编译
1. 把源代码转换为机器码的过程。
2. 在编译之前会进行前期处理。
3. 过程当中会进行语法检查。
4. 编译器:完成编译动作的程序。
连接
1. 将可执行的文件与包含的文件/用到的函数库建立关联关系。
编译型语言与解析型语言
编译型语言:需要先经过编译和连接产生可执行文件,如java/c/c++。à开发人员编译连接
解析型语言:不需要先经过编译和连接过程,直接在特定的程序或环境下即可执行的语言,如JavaScript/Python语言。à自动编译连接
几个基本概念
数据:是计算机程序处理的对象,可以是整数、整数、字符,也可以是图像、声音等的编码表示。
数据结构:指的是数据与数据间存在一种或多种特定关系,与数据结构密切相关的便是数据的类型和数据的存放。
程序设计:编写程序的过程。
软件:程序+文档。

第二课 Linux下c程序开发环境

概述
Linux天生和C有不解之缘,Linux的操作系统内核就是用C语言写的,另外Linux下很多软件也是用C语言写的,特别是一些著名的服务软件,比较MySQL、Apache。
开发环境构成
编辑器:选择VI
编译器:选择GNU C/C++ 编译器gcc
调试器:应用广泛的gdb
函数库:glibc
系统头文件:glibc_header
安装时要注意
在安装Linux时要选上“程序开发”的开发工具,就可以自动安装gcc/gdb
若想开发图形界面,还需要选上GNOME/KDE软件开发。
IDE
Kylix:号称Linux下的dephi
Kdevelop
RHIDE:类似于Turbo c++
编译器gcc
gcc是GNU推出的功能强大、性能优越的多平台编译器,gcc编译器能将c、c++源程序编译连接成可执行程序,以下是gcc支持编译的一些源文件后缀及其解释。
.c 为后缀的文件,c语言源代码文件。
.h为后缀的文件,是程序所包含的头文件。
.i为后缀的文件,是已经予处理的过的C源代码文件。
.o为后缀的文件,是编译后的的目标文件。
.s为后缀的文件,是汇编语言源代码文件。
gcc –o hello hello.c
用gcc来编译我们的源程序件。
-o选项要求编译器给我们输出的可执行文件为hello
-c 表示我们只要编译器输出目标代码,而不必输出可执行文件
-g 表示表示我们要求编译器编译时提供我们以后对程序进行调试的信息。
执行./hello就可以看到程序的输出结果。
函数库 glibc要构架一个完整的c开发环境,Glibc是必不可少的,它是Linux下c的主要函数库,Glibc有两种函数库
安装成测试用的函数库
安装成主要的c函数库
glibc2包含几个附加包:LinuxThreads、Locale和crypt,通常它们的文件名随版本不同而类似下列文件名:
glibc-2.0.6.tar.gz
glibc- linuxThreads -2.0.6.tar.gz
glibc- Localedate-2.0.6.tar.gz
glibc- crypt-2.0.6.tar.gz
Glibc提供系统调用和基本函数的C库,比如open、malloc、printf等等,所有动态连接的程序都要使用它。
系统头文件 glibc-header缺少系统头文件,很多用到系统功能的c程序将无法编译。
假如少装了这些包,可以找到Linux安装文件相关的rpm包进行安装。
C开发环境对应的RPM包
由于gcc需要依赖binutils和cpp包,另外make包也在编译时常用,所以一共需要8个包来完成安装。
cpp-*.rpm
binutils-*.rpm
glibc-*.rpm
glibc-kernheaders-*.rpm
glibc-common-*.rpm
glibc-devel-*.rpm
gcc-*.rpm
make-*.rpm
查看glibc的版本 ls/lib/libc-*
查看 gcc的版本gcc –-version
Linux下c程序开发过程
使用vi等编辑工具编写源程序,保存为*.c。
使用gcc编译成二进制可执行文件。
./a.out执行。
有问题可用gdb进行调试。

Hello.c
int main(int argc,char **argv){
printf(“Hello,Linux \n”);
return 0;
}
c语言程序结构c语言由函数构成,至少且只有一个入口;main函数是程序的入口点,执行程序时第一个执行的函数。
函数由函数的原型和函数体(包含变量定义和语句部分组成);
main(){
变量说明
    语句
}
语句必须以;作为结束标记
/* 注释*/  //注释
printf(“普通字符或%开头或用\开头”,输出内容)
“{” ”}” 函数体的开始结束标记
予处理命令用#include包含有关文件信息。
Scanf(“输入数据格式”,&输入变量);
C 程序组成
可执行程序:最终执行的命令。
包含文件:include定义文件。
库文件:该c程序自定义的库。
比如用RPMP安装mysql数据库
可执行文件:/usr/bin
包含文件:/usr/include/mysql
库文件:/usr/lib/mysql
------------------------
gcc:查看是否安装了gcc
gcc –version:查看gcc版本
ls /lib/libc-*


















第三课 Linux 基础

Linux简介 1. 芬兰大学生Linus 在1990-1991年开发。
2. 开放源代码的优秀操作系统。
操作系统介绍
1. 操作系统:是作为用户与计算机接口的软件程序。
2. 操作系统功能:命令解释、进程管理、内存管理、输入输出(I/O)操作和外围设备管理、文件管理。
Linux特点
开放性、多用户、多任务、出色的稳定性和速度性能、丰富的网络功能、可靠的系统的安全、可移植性。
Linux关机方法
1. shutdown –h now  关机
2. shutdown –r now 重启
3. reboot 快速重启
4. int 0 关机 init 6重启
5. halt 系统停机
Linux系统结构
  外层应用程序àshellàKernelà硬件
  shell:执行命令
  Kernel:驱动程序
Linux目录结构
  在linux、unix下所有硬件、软件都是做为硬件存在
1. 存放命令的目录 /bin 、/sbin、/usr/bin、usr/sbin、usr/local/bin
2. /boot 内核及其它系统启动所需要的文件
3. /opt安装大的应用程序
4. /tmp 临时文件
5. lost+found 系统修复过程中恢复的文件
6. root 超级用户主目录
7. /dev device设置目录
b-block块设备、c-character字符设备、Linux硬件设备对应文件、光驱/dev/cdrom、软驱/dev/fd0
8. /etc 配置文件所在的子目录
启动引导程序 /etc/lilo.conf 、/etc/grup.conf  多系统启动设置
控制启动模式 /etc/inittab (图形/文本登录)  3:文本 5:图形模式
文件系统配置 /etc/fstab
/etc/profile 增加环境变量 (修改PATH路径)如修改JAVA/J2EE开发环境
/etc/ftp*  ftp的配置文件
/etc/httpd  web服务器的配置文件
/etc/ssh* ssh的配置文件
   
  /etc/inittab文件
  文字界面登录 init 3 图形化登录 init 5   单用户模式init 1
在字符界面模式下如果显示为乱码,则执行unset LANG
9. /home
/home/username 用户主目录
创建新用户 useradd username
添加密码 passwd username
/etc/passwd :系统能够识别的用户清单,纯文本显示了加密的口令。
/ect/shadow:超级用户才能读,用于保护加密口令的安全。
10. /lib 库文件的目录
/lib 系统所用的库 如c程序库
/lib/modlus/2.4.20-8/Kernel/drivers 驱动模块
/usr/lib 应用程序使用的库 如mysql的API
11. /mnt目录
光驱装载 mount – t iso9660 /dev/cdrom /mnt/cdrom
卸载 umonut /mnt/cdrom
装载 先在/mnt下新建目录 u_disk u盘 mount /dev/sdb1 /mnt/u_disk
12. /usr目录
/usr/doc /usr/share/doc 帮助文档
man命令 查看命令的手册页
info 命令 查看命令的帮助
命令 –help
/usr/src/linux-2.4.20-8 linux源代码

x11:用于x windows
bin:几乎所有的命令程序,开发的程序
sbin:系统管理所用的命令
include c语言头文件
lib 库文件和数据库文件
local 本地安装的软件
share 共享的文件或数据
13. /var目录
www apache的文档目录
lib 系统运行时随时改变的文件
local /usr/local程序的可变数据
log 日志
spool 邮件,新闻等队列的脱机目录
tmp 临时文件
了解所用硬盘的的信息mount 所挂装的分区
fdisk –l 硬盘分区状况
df –h 硬盘分区的使用状部
du –sh 目录占用的空间
uname –a 所用linux版本号
Linux常用文件操作命令
mkdir 创建目录
rmdir 删除空目录
rm –r –f 递归的删除目录,并且不提示
pwd 查看当前目录
cd 切换目录
ls 格式 ls [ 参数][路径文件名]
参数:-a、 –l、-R 递归所有目录和文件、-d 不递归
more/less文件 :查看文件内容
cat :查看文件内容
mv 移动目录或文件 mv [参数] <src> <des>
cp 复制目录或文件 cp[参数] <src> <des>  -R 递归copy
Linux文件类型
普通文件(-):文本文件和二进制文件。
目录文件(d):文件夹
链接文件:ln创建的文件
特殊文件:设备文件(b 、c)和管道文件(p)
ls –l 可以查看文件类型
检查文件系统
当系统非正常关机,可能无法进入系统,这时可用fsck修复磁盘
fsck [选项] <设备名>
-p 自动修正安全更正并且不会导致数据丢失的问题
fsck –p –t ext2 /dev/hda2
文件的查找
find 路径 [选项]
find /etc -name passwd
-size 根据文件大小
-type 根据文件类型
locate
locate –u &
grep [选项]  查找模式 文件名 [文件名…]
grep [参数] ‘str’ filelist
-n 显示匹配的行号
-I 忽略大小写
-r 递归查找
索引节点linux文件系统使用索引文件记录文件信息,作用类似于window的文件分配表
索引节点是一个结构, 它包含了一个文件的长度,创建、修改时间、许可权、所属关系。
硬盘中位置等信息.
对于一个文件有唯一的索引节点号与之对应,而对于索引节点号却可以有多个文件名与之对应。
可以用ln命令对已经存在的文件创建连接,而不是复制文件。
Linux用户类型
系统管理员(root)
文件的拥有者(u)
组拥有者(g)
其它用户(o)
文件目录的权限rwx  r:读权限 w:写权限 x:执行权限
chmod 750 文件/目录名
设置u:所有权限、g :r x权限、o:无权限
改变文件目录的访问权限
符号标记法
chmod  (ugoa) (+-=) (rwx) filename/filelist
数字标记法
例:chmod 755 /usr/local/*
文件比较
找出两个文本文件的差异
diff [参数] <file> <file>
-w 忽略所有空格
-I 忽略大小写
cmp 比较任意的两个文件
cmp [para] <file> <file>
重定向
重定向改变关于标准输入、输出、错误分配
输入重定向
$cat <test1
错误重定向
$cat datafile 2>error -mesg
输出重定向
  $cat test1>test2
网络主要命令ifconfig
ping
route –n
netstat
Linux系统应用软件分发格式tar包   unix系统打包工具 
rpm 包 RedHat 公司提供的软件包封装格式
dpkg包 debian 公司提供的软件包封装格式 ,后缀名deb
rpm包
安装rpm包: rpm –ivh rpm包
升级 rpm包: rpm  -Uvh rpm包
删除rpm包:  rpm –e  rpm包
列出信息 :rpm –qi 包名称
显示命令所在的包:rpm –qf  ‘which 命令’
包中的文件列表:rpm –ql rpm包
http://www.rpmfind.net
备份格式介绍
分享到:
评论

相关推荐

    Linux下C语言开发集锦

    本集锦聚焦于Linux环境下的C语言开发,旨在帮助开发者深入理解和掌握C语言在Linux平台上的应用。 首先,Linux下C语言开发的基础知识包括对GCC(GNU Compiler Collection)的使用。GCC是Linux中的标准编译器,可以将...

    Linux下C语言开发工具

    Linux下C语言开发工具

    linux下C语言开发笔记整理

    Linux下C语言开发笔记整理涵盖了从基础知识到网络通信的多个方面,主要围绕在Unix/Linux系统环境下使用C语言进行软件开发的各项技术与理论。以下是从文件提供的信息中提炼的知识点。 ### Unix/Linux系统基本命令和...

    linux下c语言开发

    在Linux环境下进行C语言开发是一项基础且重要的技能,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。Linux提供了丰富的开发工具和强大的系统调用,使得C语言编程变得更加高效和灵活。以下是一些关于...

    Linux下C语言开发环境

    在Linux环境下进行C语言开发是一项基础且重要的技能,尤其对于那些致力于系统级编程和嵌入式领域的开发者。本文将深入探讨Linux操作系统、开发环境的设置、常用的开发工具以及编码风格。 首先,Linux操作系统是一个...

    linux下c语言开发的tftp服务器及客户端

    linux下c语言开发的tftp服务器及客户端(符合RFC1350到RFC2349标准),在debian12上开发测试。 软件架构 软件架构说明 c语言开发,包括tftp客户端和服务器端2部分程序。 服务采用多线程方式开发,主程序监听端口,...

    linux 下c开发

    通过这样的实践,你可以逐步掌握在Linux环境下进行C语言开发的基本技巧,为进一步的系统级编程和嵌入式开发打下坚实的基础。在学习过程中,遇到问题可以通过邮件或博客与他人交流,不断积累经验,提升技能。

    Linux下C开发汇总资料

    在Linux环境下进行C语言开发是一项基础且重要的技能,涉及到多个工具和概念的综合运用。本文将深入探讨Linux下的C开发,主要包括GDB调试器、GCC编译器、Linux常用命令、Makefile构建系统以及VI编辑器的使用。 一、...

    Linux下C语言开发工具PPT教案学习.pptx

    在Linux环境下进行C语言开发,通常需要掌握一系列的工具和流程。本教程主要涵盖了Linux下C语言开发的一些关键工具和概念,包括编辑器、编译器、构建工具以及调试工具等。 1. **VIM编辑器**:VIM是Linux系统中常用的...

    第一讲 Linux下C语言程序开发

    " Linux下C语言程序开发详解" 本资源主要讲解了 Linux 下 C 语言程序开发的基础知识和基本概念。课程的主要内容包括 Linux 操作系统和 C 语言简介、Linux 下 C 语言程序开发的基础知识、虚拟机的使用、基本开发过程...

    Linux下C语言开发环境PPT教案学习.pptx

    Linux下C语言开发环境PPT教案学习.pptx

    01第01章Linux下C语言开发环境.ppt

    01第01章Linux下C语言开发环境.ppt

    Linux下C开发之线程通信

    Linux下C开发之线程通信 在Linux平台下,线程通信是C开发中一个非常重要的方面。本文将详细介绍Linux下C开发之线程通信的相关知识点,包括线程概念、线程创建、线程控制、线程通信和线程同步等。 一、线程概念 在...

    Linux下C语言应用编程

    Linux下C语言应用编程》深入浅出地讲解了Linux下C应用程序开发所需的基本工具、知识和技巧,主要包括:开发工具的使用和技巧、文件I/O编程、多进程编程、进程间通信、多线程编程、网络编程等内容。可以让读者轻松、...

    LINUX高级程序设计(中文第二版)第一章 LINUX下C语言开发环境

    俺花了N个大洋买来的,现在免费提供给大家

    Linux下C开发的磁盘调度算法实现

    Linux下C开发的磁盘调度算法实现,算法齐全

    Linux 下c开发学生管理系统

    在Linux环境下用C语言开发学生管理系统是一项常见的编程实践任务,它可以帮助我们理解操作系统与编程语言的结合,以及如何实现文件操作、数据管理等核心功能。下面将详细探讨这个项目涉及的知识点。 首先,C语言是...

Global site tag (gtag.js) - Google Analytics