![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux、 C语言l
文章平均质量分 61
唯C教育
本人是嵌入式Linux爱好者分享一个可以免费学习到这方面的地址给大家www.weicedu.com
展开
-
【Linux基础】多继承的构造与析构
一个派生类可以有多于一个的基类,称之为多继承。派生类构造函数的执行顺序:(1)先按着声明的顺序(从左至右)依次调用各基类的构造函数。(2)然后按照数据成员(包括内嵌对象、常量、引用等必须初始化的成员)的声明顺序,依次调用数据成员的构造函数或初始化数据成员。(3)最后执行派生类构造函数的函数体。派生类析构顺序:(1)先执行派生类的析构函数。(2)然后按着内嵌对象声明的相反转载 2013-06-09 11:44:33 · 508 阅读 · 0 评论 -
【Linux基础】为什么要学shell
作为Linux操作系统的来源,UNIX是许多伟大构想和操作系统哲学的源泉,它提供了多种不同的shell程序。在UNIX商业版本中最常见的可能是Korm shell,但还没有许多其它的shell。那为什么要使用shell进行程序设计呢?这么说吧,shell扮演了一个双重角色。虽然它表面上和Windows的命令提示符相似,但是它具备完成相当复杂的程序的强大功能。你不仅可以通过它执行命令、调用Linux转载 2013-06-09 11:57:08 · 2248 阅读 · 0 评论 -
【Linux基础】派生类的构造过程和析构过程
基类的构造函数和析构函数都不被继承,需要在派生类中重新定义。由于派生类继承了基类的成员,在初始化时,也要同时初始化基类成员。可通过调用基类的构造函数对完成初始化。派生类的构造过程派生类构造函数定义的一般格式为:派生类名::构造函数名(参数表):基类名(参数表),内嵌对象1(参数表1),内嵌对象2(参数表2),…,常量1(初值1),常量2(初值2),…,引用1(变量1),引用2(变量2)转载 2013-06-09 11:40:37 · 584 阅读 · 0 评论 -
【Linux基础】多继承的二意性
基类有同名成员引起的二意性多继承时,不同基类可能有同名成员,这样派生类中就可能有从不同基类继承的同名成员,在引用时产生二意性。2. 从多个路径继承同一个基类引起的二意性多重继承时,低层的派生类有可能从不同的路径继承同一个基类的成员多次,引用这样的成员时也会产生二意性。01.jpg (11.96 KB, 下载次数: 0)下载附件保存到相册设为封面转载 2013-06-09 11:47:55 · 649 阅读 · 0 评论 -
【Linux基础】Shell常用命令
当用户登录到linux系统时,便开始与bash进行互动,一直到用户注销为止。如果是普通用户,则Bash的默认提示符为“$”(代表一般身份使用者),如果是超级用户(root),提示符则变为“#”。用户与系统互动的过程便是通过在提示符后面输入操作命令来完成的。按照操作命令的来源,我们可以将其分为以下两大类:1.bash内置命令为了方便shell的操作,加快用户与系统互动的效率,bash中“转载 2013-06-10 16:11:32 · 710 阅读 · 0 评论 -
【Linux基础】重定向与管道
Shell命令在执行时,会自动打开三个标准文件,即标准输入文件(stdin),一般对应终端的键盘;标准输出文件(stdout)和标准出错输出文件(stderr),这两个文件对应终端的屏幕。但在实际应用中,这三个文件常常需要按照新的格式进行定向,从其它文件中导入内容或将内容导出到其它文件中,此过程就是重定向;使内容按一定格式输出,这就是管道。1.重定向一个命令的执行可以用图 5‑2表示。转载 2013-06-10 16:44:38 · 713 阅读 · 0 评论 -
【Linux基础】shell编程
Shell处理过程分三个步骤:Shell输入、Shell处理、Shell执行。 本文转载于唯C教育,【Linux基础】shell编程http://www.weicedu.com/forum.php?mod=viewthread&tid=92&fromuid=4(出处: http://www.weicedu.com/)转载 2013-06-10 16:47:29 · 400 阅读 · 0 评论 -
【Linux基础】shell变量
与各种高级程序设计语言相似,shell环境下也可以一组文字或符号,来替换一些设置或者是一串保留的数据,这组文字或符号便是shell变量。在linux环境中,存在大量不同的shell变量,既有环境本身自带的系统变量,也有用户自定义的普通变量。根据前面常用命令,我们可以用set命令查看linux系统当前所有变量及其内容。[root@localhost test]# setBASH=/b转载 2013-06-10 16:49:15 · 843 阅读 · 0 评论 -
【Linux基础】简单shell应用
shell作为命令解析器,管理维护系统,互动式地解释和执行用户输入的命令是shell的基本功能之一,shell作为一门编程语言,处理存放在所谓shell脚本文件中的命令,Shell除了作为命令编译器用于管理命令外,还可以用来进行程序设计,它提供了定义变量和参数的手段以及丰富的过程控制结构。使用shell编程类似于使用DOS中的批处理文件,称为shell脚本,又叫shell程序或shell命令文件。转载 2013-06-10 16:04:07 · 537 阅读 · 0 评论 -
【Linux基础】shell函数
直到目前为止,我们做实验所编写的shell程序都是非常短小的。可在实际应用中,有时我们为项目所编写的脚本程序是非常大型的,这时我们该如何来构造自己的代码呢。很多人可能想到说将我们大型脚本按照功能模块拆分成多个小型脚本,但这种做法存在如下几个缺点:1、在一个脚本程序中运行另外一个脚本程序要比执行一个函数慢得多。2、返回执行结果变得更加困难,而且可能存在非常多的小脚本。基于上面原因及拆分思转载 2013-06-11 16:24:11 · 582 阅读 · 0 评论 -
【Linux基础】Linux文件结构
文件 Linux环境中的文件具有特别重要的意义,因为它们为操作系统服务和设备提供了一个简单而统一的接口。在Linux中,一切(几乎一切)都是文件。设备对操作系统而言也可以看做是文件,通常程序完全可以像使用文件那样使用磁盘文件、串口、打印机和其他设备。还有一些抽象的对象也可以看做是文件,如后面将讲到的网络连接socket套接字。大多数情况下,我们只需要使用5个基本函数:open、close、翻译 2013-06-11 16:27:32 · 518 阅读 · 0 评论 -
【Linux基础】库函数
在输入输出操作中,直接使用底层系统调用的问题是它们的效率非常的低。为什么呢?(1)系统调用会影响系统的性能。与函数调用相比,系统调用的开销要大些,因为在执行系统调用时,Linux必须从用户代码切换到内核代码运行,然后再返回用户代码。减少这种开销的好方法是,在程序中尽量减少系统调用次数,并且让每次系统调用完成尽可能多的工作。(2)硬件会对底层系统调用一次所能读写的数据块做出一定的限制转载 2013-06-11 16:29:51 · 664 阅读 · 0 评论 -
【Linux基础】综合实验:文件读写及上锁
1.实验目的通过编写文件读写及上锁的程序,进一步熟悉Linux中文件I/O相关的应用开发,并且熟练掌握open()、read()、write()、fcntl()等函数的使用。2.实验内容在Linux中FIFO(先进先出)是一种进程间的管道通信机制。本实验通过使用文件操作,仿真FIFO结构以及生产者-消费者运行模型。3.实验步骤(1)流程图该实验流程图如图所示转载 2013-06-12 15:37:09 · 6981 阅读 · 2 评论 -
【Linux基础】综合应用
至此,我们己经学习完作为程序设计语言的shell的主要功能。是时候将我们所学的知识结合起来以编写一个实际的示范程序了。纵贯全章,我们将编写及设计一个记录学生成绩的应用程序。需求分析设计框图对数据进行更新、检索和显示的这三项需求表明采用一个简单的菜单应该就足够了。由于所有需要存储的数据全部都是文本,而且假设要记录的学生数不是很多,所以我们没有必要使用复杂的数据库,使用一些简单的文转载 2013-06-11 16:26:04 · 609 阅读 · 0 评论 -
【Linux基础】不带缓存的IO操作
不带缓存的IO操作又称底层IO操作。文件底层I/O操作的系统调用主要用到5个函数:open()、close()、read()、write()、lseek()。这些函数的特点是不带缓存,直接对文件进行操作。虽然不带缓存的文件IO操作程序不能移植到非POSIX标准的系统(如Windows系统)上去,但是在嵌入式程序设计、TCP/IP的Socekt套接字程序设计、多路IO操作程序设计等方面应用广泛。转载 2013-06-12 15:15:56 · 1016 阅读 · 0 评论 -
【Linux基础】带缓存的IO操作
前面所述的文件IO操作是基于文件描述符的。这些都是基本的IO控制,是不带缓存的。本节说要介绍的IO操作是基于流缓冲的,它是符合ANSI C的标准IO处理,这里有很多读者已经非常熟悉的函数如:printf()、scanf()等。因此本节仅介绍最主要的函数。带缓存的文件IO操作是在内存中开辟一个“缓冲区”,为程序中的每一个文件使用。当执行读文件的操作时,从磁盘文件中将数据先读入内存“缓冲区”,转载 2013-06-12 15:26:06 · 840 阅读 · 0 评论 -
【Linux基础】shell控制结构
shell程序设计语言的基础是对条件进行测试判断,根据不同的测试结果采取相应的程序处理。因此,下面我们将会先来分析在shell脚本程序中可以使用的判断条件,然后再来学习使用这些条件的控制结构。1.4.3.2.1 判断条件/************************************************/1 条件测试条件测试有二种常用形式:第一种是用tes转载 2013-06-11 16:22:00 · 812 阅读 · 0 评论 -
【Linux基础】系统调用
我们用很少量的函数就可以对文件和设备进行访问和控制。这些函数被称为系统调用,由Linux系统直接提供,它们也是通向操作系统本身的接口。Linux系统调用部分是非常精简的系统调用(只有250个左右)),它继承了UNIX系统调用中最基本和最有用的部分。这些系统调用按照功能逻辑大致可分为进程控制、进程间通信、文件系统控制、系统控制、存储管理、网络管理、socket控制、用户管理等几类。所谓系统调转载 2013-06-11 16:28:44 · 513 阅读 · 0 评论 -
【Linux基础】文件夹
文件锁包括建议性锁和强制性锁。建议性锁要求每个上锁文件的进程都要检查是否有锁存在,并且尊重已有的锁。在一般情况下,内核和系统都不使用建议性锁。强制性锁是由内核执行的锁,当一个文件被上锁进行写入操作的时候,内核将阻止其他任何文件对其进行读写操作。采用强制性锁对性能的影响很大,每次读写操作都必须检查是否有锁存在。在Linux中,实现文件上锁的函数有lockf和fcntl,其中lockf用于对文件施转载 2013-06-12 15:34:05 · 644 阅读 · 0 评论 -
【Linux基础】多路复用
前面的fcntl函数解决了文件的共享问题,接下来该处理I/O复用的情况了。总的来说,I/O处理的模型有5种。阻塞I/O模型:在这种模型下,若所调用的I/O函数没有完成相关的功能就会使进程挂起,直到相关数据到才会出错返回。如常见对管道设备、终端设备和网络设备进行读写时经常会出现这种情况。非阻塞模型:在这种模型下,当请求的I/O操作不能完成时,则不让进程睡眠,而且返回一个错误。非阻塞I/O转载 2013-06-12 15:35:47 · 762 阅读 · 0 评论 -
【Linux基础】程序与进程
程序是一个普通文件,是机器代码指令和数据的集合,这些指令和数据存储在磁盘上的一个可执行映像(Executable Image)中。所谓可执行映像就是一个可执行文件的内容,例如,你编写了一个C源程序,最终这个源程序要经过编译、连接成为一个可执行文件后才能运行。源程序中你要定义许多变量,在可执行文件中,这些变量就组成了数据段的一部分;源程序中的许多语句,例如“i++; for(i=0; i转载 2013-06-13 14:14:14 · 646 阅读 · 0 评论 -
【Linux基础】进程结构
局变量、常数及动态数据分配的数据空间(如malloc函数取得的空间)等代码段:存放的是程序代码数据。堆栈段:存入的是子程序返回地址、子程序的参数以及程序的局部变量。补充知识:一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—— 一般转载 2013-06-13 14:17:51 · 447 阅读 · 0 评论 -
【Linux基础】Linux发展过程
Linux起源于一个名为linus的芬兰大学生,当时他主修一门操作系统课程,而这门课程提供了一个用于教学科研的称为Minix操作系统(Minix系统是由Andrew Tannebaum教授所开发)。linus发现Minix系统的功能很不完善,就给Minix增加一些功能,这样,Linux最早版本产生了。1991年10月,linus Torvalds在com.os.minix发布了Linux第一个转载 2013-06-05 09:21:00 · 552 阅读 · 0 评论 -
【Linux基础】Linux应用方向
目前,Linux系统主要被应用到:桌面应用、服务器、软件开发和嵌入式领域。1.桌面应用随着Linux的发展,Linux系统的桌面应用得到了很大的改进,其系统集成了办公、多媒体、开发和网络等功能。2.服务器Linux操作系统的稳定性和安全性,是许多企业选择其作为服务器的重要原因,又因其是支持多平台的,软件是开源免费的,便得到越来越多的企业青睐。同时Linux能和其它操作系统如转载 2013-06-05 09:25:34 · 844 阅读 · 0 评论 -
【Linux基础】Linux版本
Linnux版本Linux有两种版本,一种是内核版本,另一种是发行版本。1.内核版本内核版本指的是Linux的内核,是由linus等人在不断地开发和推出新的内核。其版本号命令是由三部分数字组成:x.y.zx为主版本号。y次版本号,偶数代表稳定版本,奇数代表是测试版本。z对前版本的修改次数。例如:2.6.12表示对核心版本的第12次修改。2.发行版本发行版本指转载 2013-06-05 09:29:04 · 604 阅读 · 0 评论 -
【Linux基础】Linux系统的安装之Redhat
Linux对硬件的需求很低。在字符方式下运行,那么一台386的计算机就可以用来安装Linux了;在图形界面下运行,那也只需要一台16MB内存,600MB硬盘的计算机即可安装Linux。这听起来来比那些至少需要256MB内存,2.0GBHz的操作系统要好得多。现在计算机行业的趋势是让用户购买硬件配置更高的计算机,而Linux却不受这个趋势的影响。虽然随着Linux的发展,在其上运行的软件越来越多转载 2013-06-05 09:36:17 · 467 阅读 · 0 评论 -
【Linux基础】Linux系统安装过程(上)
首先把BIOS设置为从光盘引导,再把LINUX系统安装盘放入光驱,然后重启电脑,按如下步骤安装Linux系统:1.启动界面从光盘启动安装程序后,就会出现安装提示画面,如图 1‑1所示。01.jpg (19.59 KB, 下载次数: 0)下载附件保存到相册 设为封面 3 天前 上传安装界面上有3个选项供用户选择:(1转载 2013-06-05 09:46:15 · 553 阅读 · 0 评论 -
【Linux基础】进程管理
启动进程进程加载有两种途径:手工加载和调度加载手工加载:手工加载又分为前台加载,和后台加载。前台加载:是手工加载一个进程最常用方式。一般地,当用户输入一个命令,如“ls -l”时就已经产生了一个进程,并且是一个前台进程。后台加载:往往是在该进程非常耗时,且用户也不急着需要结果的时候启动。常常用户在终端输入一个命令时同时在命令尾加上一个“&”符号。调度加载:在系统中有转载 2013-06-13 15:26:39 · 512 阅读 · 0 评论 -
【Linux基础】进程属性
1.进程标识进程最主要的属性就是进程号(PID,process ID)和它的父进程号(PPID,parent process ID).PID和PPID都是非零正整数。从进程ID的名字就可以看出,它就是进程的身份证号码,每个人的身份证号码都不会相同,每个进程的进程ID也不会相同。系统调用getpid()就是获得进程标识符。一个PID唯一地标识一个进程。一个进程创建一个新进程称为创建了转载 2013-06-13 15:24:49 · 1228 阅读 · 0 评论 -
【Linux基础】Linux概述
Linux是一个多用户、多任务的类UINX操作系统,它可免费使用和自由传播。Linux系统最大的特色就是源代码完全开放,任何人在遵守GPL协议下,都有获得、修改和发布其代码的自由。Linux其版权所有者是芬兰linus Torvalds等开发人员。Linux系统一直以系统的稳定性和强大的网络功能而著称,很多企业将LINUX作为其公司的服务器操作系统。随着Linux的发展,Linux桌面应用越来转载 2013-06-05 09:04:02 · 480 阅读 · 0 评论 -
【Linux基础】Linux系统安装过程(下)
7.磁盘分区设置弹出“警告”对话框,如图 1‑7所示,选“是”。01.jpg (14.66 KB, 下载次数: 0)下载附件保存到相册 设为封面 3 天前 上传弹出“分区结构选择”界面,如图图 1‑8所示。选择选“建立自定义分区结构”。单击“下一步”。02.jpg (17.07 KB, 下载次数: 0)转载 2013-06-05 12:01:42 · 545 阅读 · 0 评论 -
【Linux基础】进程模式
在Linux系统中,进程的执行模式划分为用户模式和内核模式。如果当前运行的是用户程序、应用程序或内核之外的系统程序,那么对应进程就在用户模式下运行:如果在用户程序执行过程中出现系统调用或发生中断事件,那么就要运行操作系统程序,进程模式就变成内核模式。用户进程既可以在用户模式下运行,也可以在内核模式下运行。如下图所示:01.jpg (22.44 KB, 下载次数: 0)转载 2013-06-13 15:30:28 · 1325 阅读 · 0 评论 -
【Linux基础】linux进程控制
在Linux系统中,常用于进程控制的函数有fork()函数、exec()函数族、exit()和wait()函数等。本文转载于唯C教育,【Linux基础】linux进程控制http://www.weicedu.com/forum.php?mod=viewthread&tid=110&fromuid=4(出处: http://www.weicedu.com/)转载 2013-06-14 14:24:06 · 442 阅读 · 0 评论 -
【Linux基础】fork函数
ork函数和一般的函数有着很大区别,fork函数执行一次却返回两个值。1.fork函数说明在进程中使用fork函数,则会创建一个新进程,新进程则称为子进程,原进程称为父进程。由于fork函数返回两个值,则这两个进程分别带回它们各自的返回值,其中父进程的返回值是子进程的进程号,而子进程则返回0.因此,可以通过返回值来判定该进程是父进程还是子进程。使用fork函数得到的子进程是父进程的转载 2013-06-14 14:32:59 · 569 阅读 · 0 评论 -
【Linux基础】文件相关命令
Linux中常用的文件相关命令分为文件管理和文件处理两部分,常用命令如表 2‑1所示。 本文转载于唯C教育【Linux基础】文件相关命令http://www.weicedu.com/forum.php?mod=viewthread&tid=39&fromuid=4(出处: http://www.weicedu.com/)转载 2013-06-05 14:23:22 · 471 阅读 · 0 评论 -
【linux基础】文件管理
1.pwd功能说明显示当前路径。语法格式pwd使用实例# pwd/root2.mkdir功能说明创建目录。语法格式mkdir [选项] 目录名使用实例# mkdir mydir3.ls功能说明显示当前路径下的内容。语法格式ls [选项] 目录名选项参数-a 显示所有档案及目录-l 除档案名称外,转载 2013-06-05 14:27:05 · 467 阅读 · 0 评论 -
【Linux基础】Gcc 编译器
不经意间,GCC已发展到了4.5的版本,尽管在软件开发社区之外乏人闻问,但因为GCC在几乎所有开源软件和自由软件中都会用到,因此它的编译性能的涨落会直接影响到Linux、Firefox乃至于OpenOffice.org和Apache等几千个项目的开发。因此,把GCC摆在开源软件的核心地位是一点也不为过。另一方面,GCC4.5的出现,正在牵引着广大程序员们的心。如果我们非要用一个词来说明GCC与程序转载 2013-06-05 15:00:04 · 540 阅读 · 0 评论 -
【Linux基础】Linux文件
1.文件类型Linux下主要的文件类形可分为4种:普通文件、目录文件、设备文件和链接文件。(1)普通文件普通文件是用户最常使用的文件。它包括了文本文件、数据文件、二进制可执行程序。(2)目录文件在Linux中目录也是文件,其内容包含了文件名和子目录名以及指向那些文件和子目录的指针。目录文件是Linux中存储文件名的惟一地方,当把文件和目录相对应起来时,也就是用指针将其链接起转载 2013-06-05 14:08:57 · 468 阅读 · 0 评论 -
【Linux基础】Linux文件系统
文件系统是操作系统用于确定磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。在Linux系统中,每个分区都是一个文件系统,都有自已的目录层次结构。Linux系统最重要特征之一就是支持多种文件系统,这样它更加录活。并可以和许多其他操作系统共享。随着Linux系统的不断发展,Linux系统内核可以支持几十种文件系统类型:JFS,Reiser转载 2013-06-05 14:10:59 · 529 阅读 · 0 评论 -
【Linux基础】Linux目录
Linux的目录为树形结构,有一个在文件系统中唯一的“根”,既“/”。如前所述,目录也是一种文件,是具有目录属性的文件。当系统建立一个目录时,还会在这个目录下自动建立两个目录文件,一个是“.”,代表当前目录,另一个是“..”,代表当前目录的父目录。对于根目录,“.”和“..”都代表其自己。详细的目录介绍如表 1‑3所示。表 1‑3 Linux文件系统目录目 录转载 2013-06-05 14:12:44 · 481 阅读 · 0 评论