自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

转载 Linux中Qt的安装

1、下载Ot安装包Qt5.30的下载地址如下,在网页中打开找到需要的资源,下载.run格式的安装软件。http://download.qt.io/archive/qt/5.3/5.3.0/qt-opensource-linux-x64-5.3.0.run.mirrorlist2、安装Qt如果是使用浏览器下载的话一般是存放在“下载”文件夹中,在文件夹中找到刚刚下载的安...

2017-05-28 22:14:00 255

转载 面向对象编程与面向过程编程的区别与联系

LinuxC编程的学习已经告一段落,这段开始学C++。C++是面向对象编程,C语言是面向过程编程。因此学习C++的第一件事就是要弄明白什么是面向过程编程,什么是面向对象编程。之前学习的C语言是面向过程编程,回想一下C语言编程的过程。主函数,定义变量,调用函数然后实现。面向过程编程是一种非常具体,要面面俱到的的编程方式。而面向对象是以对象为单位来进行编程,比较像正常人的思维。...

2017-05-21 22:37:00 472

转载 Web服务器端程序的实现

Web服务器端程序主要是两个部分,一部分是主函数,一部门是命令处理函数。命令处理函数比较好理解就是针对客户端不同的命令进行处理,与客户端进行通信。主函数也有两个主要的功能,第一是要对程序进行初始化,其中包括创建监听套接字并且绑定到地址和端口上,第二是创建子进程处理对应的连接请求。1、主函数Web服务器的主函数中第一是初始化程序,第二就是创建子进程。父进程一直监听,子进程进行...

2017-05-21 19:41:00 273

转载 Web服务器文件传输程序客户端程序实现

1、 客户端程序--主函数客户端主程序的流程图如下:主程序主要是分析输入的命令,根据不同命令调用不同的函数处理或者进行出错处理,函数代码如下:#include "common.h"int main(void){char cline[COMMAND_LINE]; /* 缓冲区,存储用户输入的命令 */str...

2017-05-14 20:32:00 242

转载 Web服务器实现文件传输程序设计

总体概括来说就是设计一个Web服务器的流程,将执行流程分为简单的步骤,每个步骤作为一个模块来实现。1、整体设计服务器程序发送文件给客户端或者从客户端接收文件,每次通信只能做一次文件传输,传输完毕后准备处理下一次通信。客户端程序,接收或者发送一个文件后就可以退出。因此,服务器短程序是一个死循环,处理一次之后不退出,继续监听。客户端程序处理一个连接就可以了。2、客户端程序设...

2017-05-14 19:37:00 546

转载 屏蔽信号的多路选择I/O

前边提到了多路I/O的方法,这一章屏蔽信号的多路选择与之前的多路I/O一致,只是增加了屏蔽信号的作用。多路选择I/O中我们使用的是select函数,屏蔽信号的多路选择I/O使用的是pselect函数,与之前的函数相比,增加了一个参数可以用来屏蔽信号。具体函数如下所示:int pselect(int maxfdp1, fd_set *readset, fd_set *write...

2017-05-07 21:58:00 140

转载 浅谈HTTP请求与响应

HTTP协议用于客户端和服务器之间的通信,请求访问的一段是客户端,提供资源响应的一段是服务器端。HTTP通信是采用请求应答的方式来进行的,客户端发出请求,服务器响应。如果没有客户端的请求,服务器端是不进行任何响应的。HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列4个步骤:(1)建立TCP连接在HTTP工作开始之前,Web浏览器...

2017-05-07 20:10:00 135

转载 多路选择I/O

多路选择I/O提供另一种处理I/O的方法,相比于传统的I/O方法,这种方法更好,更具有效率。多路选择是一种充分利用系统时间的典型。1、多路选择I/O的概念当用户需要从网络设备上读数据时,会发生的读操作一般分为两步。(1)等待数据准备好,等待数据的到达,并且将其复制到内核的缓冲区,该缓冲区在系统态。(2)复制数据,将数据从内核缓冲区中复制到用户指定的缓冲区中。一般...

2017-05-01 10:57:00 137

转载 并发服务器

从之前的程序中也可以总结出来一般面向连接的服务器程序的代码框架,一般的模型如下所示:int main(){ socket(…); bind(…); listen(…); while(1) { accept(…); while(1)...

2017-04-30 10:44:00 123

转载 bind函数的作用

面向连接的网络应用程序分为客户端和服务器端。服务器端的执行流程一般为4步,客户端程序相对简单,一般需要两个步骤。服务器端执行流程4步如下:(1)调用socket函数,建立一个套接字,该套接字用于接下来的网络通信。(2)调用bind函数,将该套接字绑定到一个地址,并制定一个端口号,(3)调用listen函数,使用该套接字监听连接请求(4)当请求来到时,调用acce...

2017-04-23 22:26:00 451

转载 无连接的数据传输

用于无连接套接字的读写函数情况要复杂一点。由于没有建立一个连接,所以每次发送数据的过程中都要明确指明该数据包的地址,同时,在接收数据包的时候,接受进程能够得到发送该数据包的地址,从而知道该数据包从哪里来。Linux环境中提供有专门对无连接的套接字进行读写的函数,这两个函数分别为sendto函数和recvfrom函数,函数原型如下:int sendto(int sockfd...

2017-04-23 22:22:00 528

转载 面向连接的网络应用程序--服务器端

Linux环境下有专门用于读写面向连接的套接字函数,分别是send函数和recv函数,send函数和recv函数原型如下:ssize_t recv(int sockfd, void *buff, size_t nbytes, int flags);头文件:#include <sys/socket.h>参数说明:第一个参数sockfd是指定发送端套接字...

2017-04-16 20:53:00 199

转载 使用完整读写函数的网络应用程序

使用完整读写函数的网络应用程序Linux的设计原则是将硬件设备抽象成文件,用户可以像操作文件一样操作设备,前边已经说过,我们可以使用文件操作函数操作套接字。使用read函数读取套接字另一端发送过来的内容,使用write函数也可以向套接字另一端发送内容。但是,在网络环境中有一个很大的问题就是延时的问题,对于本地文件夹来说,字节流在本地传输的延时可以忽略不计,但是网络环境中传输延时可...

2017-04-16 20:49:00 155

转载 套接字编程基础

套接字是通信断点的抽象,网络编程中,套接字对于大多数通信细节做了隐藏,使程序员操作起来比较简单。1、建立和销毁套接字描述符Linux环境中使用socket函数创建一个套接字,函数原型如下:int socket(int domain,int type,int protocol);头文件: #include<sys/types.h>、#includ...

2017-04-09 22:48:00 157

转载 网络编程基础

网络编程基础1、套接字概念Linux环境下使用套接字进行进程之间的通信。用过套接字的接口,其他进程的位置对于应用程序来讲是透明的。相互通信双方端点都有一个套接字,双方如果要进行通信,通过套接字建立桥梁,双方就可以通信了。类似文件一样,套接字也有一个套接字描述符,应用程序可以像操作文件一样操作套接字。在进行网络通信的过程中,用户感觉就是在操作文件一样,这是Linux将外部设备抽...

2017-04-09 22:46:00 85

转载 传输控制协议TCP

1、TCP简介TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP是运输层的重要协议,运输层是位于IP层之上,应用层之下的中间层。应用层向运输层发送用于网间传输的、用8位字节表示的数据流,然后运输层把数据流分区成适当长度的报文段。之后运输层把结果包传给IP层,由它来通过网络将包传送给接...

2017-04-02 21:53:00 165

转载 UDP协议

1.计算机网络体系结构简介计算机网络是一个非常复杂的系统,计算机网络是由大量的结点组成的,各个结点之间进行通信和数据交换构成了互联网。为了保证各节点之间的通信正确,计算机网络需要一个十分合理的体系和通信协议。(1)计算机网络体系结构简介计算机网络体系结构采用分层的原理来实现的,计算机网络体系有两种标准,一种是由国际标准化组织(ISO)制定的开放系统互连模型(OSI),一...

2017-04-02 14:43:00 112

转载 电子词典

下面是项目要求的描述:【项目需求描述】一、单词查询给定文本文件“dict.txt”,该文件用于存储词库。词库为“英-汉”,“汉-英”双语词典,每个单词和其解释的格式固定,如下所示:#单词Trans:解释1@解释2@…解释n每个新单词由“#”开头,解释之间使用“@”隔开。一个词可能有多个解释,解释均存储在一行里,行首固定以“Trans:”开头。下面是一个典型的例子:#abyssinianT...

2017-03-26 22:59:00 212

转载 strtok()函数、fseek()函数、fwrite()函数、fread()函数的使用

在电子词典这个项目过程中遇到了几个主要的问题,第一个是怎么解决把翻译分开这个。第二个事情就是怎么把结构体写到文件中。这两个问题,一个是关于字符串的操作一个是关于文件的操作。strtok函数char *strtok(char *string, char *seps)函数功能:将字符串string中所有在seps中出现的分隔符替换掉。返回说明:返回指向下一个标记串,当没...

2017-03-26 22:56:00 142

转载 指针与数组

C语言学到这个时候,对于指针和数组的关系应该要有一个很明确的认识,要知道两者之间的联系和区别,但是,两者的关系往往也是C语言初学者容易拎不清的东西。C语言中的数组值得注意的地方有两点:(1)C语言只有一维数组,数组的大小必须在编译期就作为一个常数确定下来。C语言数组的元素可以是任何类型的对象,比如整数,字符等等,当然也可以是另外一个数组。这样就可以“仿真”出一个多维数组。...

2017-03-19 23:16:00 81

转载 单向链表操作

这两周做的两个项目都与链表操作有关,一开始接触链表的时候不是很理解,经过了两个项目的学习和琢磨对于链表的操作比以前理解的更透彻一点。链表是链式存储的线性表。根据指针域的不同,链表分为单向链表、双向链表、循环链表。目前我只掌握了单向链表的原理和相关的操作,重点来说一下单向链表。单向链表可以这样来理解,单向链表中的每个元素包含两个域,一个指针域,一个值域,这样的元素就是我们所说...

2017-03-19 14:07:00 146

转载 特殊文件(下)

特殊文件这一章讲了两种特殊文件,一种是符号链接一种是proc文件系统。/proc目录下的文件是系统运行进程的映像,它是一个伪文件系统,这些文件只存在于内存之中,不占用外部存储空间。proc文件系统不是普通意义上的文件系统,它既是一个到运行进程地址空间的访问接口,同时又是一个访问内核数据的结构。用户和应用程序可以通过proc得到系统的信息和运行中的进程信息,这是两个主要的功能。能...

2017-03-12 23:08:00 159

转载 特殊文件(上)

除了目录文件之外,Linux系统还有其他的特殊文件,这些文件可以当做普通文件进行处理,但是也有一些特殊性。这里介绍两种特殊文件,一种是符号链接,一种是proc文件系统。1、符号链接符号链接是一个重要的概念,符号链接又被称为软连接,在Linux系统中有大量的存在。符号链接可以理解为一个接口,符号链接可以为一个相对封闭的环境提供接口,为一个指向的目的文件提供快捷路径,类似于Wi...

2017-03-12 22:18:00 201

转载 从文件读数据插入到链表

前两周做了一个小作业,学生成绩管理系统,第一周实现了录入学生信息、删除学生信息、显示学生信息和按照学生平均成绩排序的功能,总体来说比较顺利,第二周只做了一件事就是读txt文件中的学生信息,将txt文件中的学生信息读到程序中插入到链表中,这一个看似简单的工作,花费了一周的时间。我程序中用到的txt文件中的数据是学生成绩,其中有学生ID、学生姓名、成绩等,在链表中分别是int型,字...

2017-03-05 23:18:00 1806

转载 学生成绩管理系统

两周的时间完成了这个作业,学生成绩管理系统。题目的要求是从文件中读取班级成绩原始记录,文件内容包括ID、姓名、语文成绩、数学成绩、平均成绩。要实现的功能有显示学生成绩信息,按照学生平均成绩进行排序,录入新的学生成绩记录,删除学生成绩记录这4个主要的功能。拿到这个题目之后,第一考虑就是用链表来做,链表的结点是一个结构体,把学生的个人信息和成绩信息存放在这个结构体中。系统要求的功能...

2017-03-05 21:53:00 322

转载 文件学习总结

文件的创建、打开、关闭、读写操作已经学完了,可以横向和纵向的总结一下这一部分的知识了,纵向来说就是关于文件的操作,打开关闭和读写操作等。横向就是对比一下文件的使用。回顾之前的学习,会发现管道通信与文件的读写有类似之处。管道通信是以一种数据流的方式进行通信的,管道通信与文件有一定的相似性也有很多不同的地方。首先创建管道使用的是pipe(fd[2])函数,fd[1]是写入端...

2017-02-26 20:57:00 293

转载 文件的新建、定位、截短和读写操作

1.创建一个新文件,创建新文件除了可以使用open函数之外还可以用creat()函数。创建文件函数creat(const char * pathname, mode_t mode)头文件:#include <fcntl.h>参数说明:第一个参数pathname同open函数的第一个参数具有同样的意义,区别在于这是需要创建的文件的地址而不是需要打开文件...

2017-02-19 22:49:00 131

转载 文件的打开和关闭操作

计算机中两个重要概念,时间和空间。时间概念可以抽象为进程,而空间的概念可以抽象为文件。文件描述符的概念:Linux环境下每一个磁盘文件在打开时都会在内核建立一个文件表项。文件表项包括文件的状态信息、存储文件内容的缓存区以及当前文件的读写位置等。同一个磁盘文件打开两次时会创建两个这样的文件表项,读写该文件的时候只影响到该文件表项中的文件读写位置。这些文件表项共同保存在内核的一...

2017-02-19 21:15:00 509

转载 线程高级操作(二)

之前在线程高级操作中说到了线程的高级操作包括修改线程的属性和进行线程之间的同步操作。线程的同步有两种方式,一种是使用互斥量一种是使用读写锁。上一篇文章说的是互斥量,这篇文章主要介绍的是读写锁。读写锁与互斥量类似,但是读写锁相对于互斥量来说最大的特点就是并行性高。互斥锁每次只有一个线程可以得到锁进行操作,其他的线程处于阻塞状态。多线程的意义就在于高并发性,但是使用互斥量就会将并行...

2017-02-12 22:38:00 110

转载 约瑟夫环的C语言数组实现

约瑟夫环问题的具体描述是:设有编号为1,2,……,n的n个(n>0)个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈,才从他的下一个人起重新报数,报到m时停止报数,报m的出圈,……,如此下去,知道剩余1个人为止。当任意给定n和m后,设计算法求n个人出圈的次序。一开始看到这这个题目就是觉得这是一个环形的,想到了用链表和用指针,然后看题目的要求是使用数组实现...

2017-02-12 19:03:00 1320

转载 Linux doxygen的安装与使用

1.安装doxygen目前最新版本的的doxygen是doxygen1.8.13,安装包可以在官网上下载,网址是:http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc。从官网下载的时候,先下载的是doxygen-1.8.13.src.tar.gz这个安装包,发现只有这一个安装包用不了,没有可执行的confi...

2017-01-21 23:12:00 328

转载 线程高级操作(一)

线程的高级操作包括修改线程的属性和进行线程之间的同步操作。线程的同步有两种方式,一种是使用互斥量一种是使用读写锁。线程共享进程空间内的资源,方便线程之间的通信,但是线程最大的优势在于并发执行,在并发执行的时候会因为资源是共享的造成操作冲突的情况,因此线程在访问共享资源的时候应该受到用户的控制,正常的完成任务。互斥量是一种锁,在访问资源的共享资源的时候对其加锁,在访问结束的时...

2017-01-21 22:19:00 153

转载 线程学习笔记(二)

5.终止线程线程退出的方式有3种1.线程体函数执行结束,用pthread_create()函数创建一个新线程的时候会执行一个函数,这个函数就是线程体函数,如果该函数执行完毕,那么线程退出,类似于住进程的main()函数返回。2.线程被另一个线程取消。这种方法类似于一个进程被另一个进程调用kill()函数杀死。3.线程自行退出,类似于线程调用一个exit()函数...

2017-01-15 20:03:00 86

转载 线程学习笔记(一)

1.什么是线程?老师说过学好操作系统(Operating System)最重要的三个概念就是文件、虚存和进程了。之前已经学习过进程,因此对于线程的概念就比较好理解了。进程是一个执行实体,操作系统是以进程为单位分配资源。在一个执行空间内可以用多个小型进程并发来完成不同的任务,这种小型的进程称之为线程。进程是一个比较大的概念,线程是一个比较具体化的小的概念,比如一个进程需要完成...

2017-01-15 12:13:00 105

转载 进程间通信

进程间通信大类上可以分为两类,分别是管道和System V IPC。这两个大类可以继续细分,管道分为半双工管道和全双工管道,全双工是最近出现的技术,只是半双工的一种补充,在有些系统中是不被支持的,因此,在管道通信中最常见的就是匿名半双工通道和FIFO两种。System V IPC包括三种进程通信方式,即消息队列、信号量和共享内存,这也是一种比较古老的方式,最近的版本中已经逐渐被PO...

2017-01-08 16:40:00 109

转载 管道通信操作

1.管道的打开以及关闭操作#include <unistd.h>#include <stdio.h>#include <stdlib.h>int main( void ){ int fd[2]; /* ...

2017-01-07 11:00:00 161

转载 在程序中执行shell命令

在linux系统下的操作中我们会经常用到shell命令来进行,一开始学习进程的时候对于shell命令也进行了思考,认为shell命令就是一个进程的外壳,经过了后来的学习对于这一点也有了更多的认识。用过shell命令的都是知道,shell命令有很多,比如去一个目录中文件名的列表是用ls,新建一个文件夹用mkdir等。其实,我们用的shell命令“ls”、“-c”就是shell这个...

2017-01-01 23:28:00 414

转载 进程控制(一)

1.进程标识符进程标识符类型是pid_t,本质上是一个无符号整数。每个进程有6个重要的ID:进程ID、父进程ID、有效用户ID、有效组ID、实际用户ID、实际组ID分别用getpid()、getppid()、geteuid()、getegid()、getuid()、getgid()这几个函数得到。2.进程操作(1)fork()函数创建一个新的进程,fork()函数...

2017-01-01 17:16:00 142

转载 Makefile文件学习总结

Makefile文件相当于是一种脚本编程语言,目的是实现自动化编译。编写makefile文件的过程中可以使用变量、控制结构和函数等一般编程语言的特性。Makefile文件的组成内容、makefile文件的书写,makefile文件使用实例。Makefile文件包含:makefile文件一般命名为makefile或者Makefile,make工具能直接识别执行。如果指定makefi...

2016-12-25 23:48:00 166

转载 进程学习笔记

1、什么是程序?程序:程序(Program)是一个静态的命令集合,程序可以作为目标存储在磁盘中。在它不执行的时候,它只占用存储,仅仅是一些代码和数据。2、什么是进程?进程:进程(Process)是执行中程序的一个具体实例,是操作系统对一个正在运行的程序的一种抽象。从程序员角度来讲,可以认为进程总是处于下面三种状态之一: 运行:进程要么在CPU上执行,...

2016-12-20 21:48:00 103

串号生成器

串号生成器 arfoahflkjszhgkljhdgkjl

2014-07-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除