自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 数据库期末复习

第一章知识点:1.数据库模型由三要素组成:数据结构、数据操作和完整性约束。2.实体型之间联系的分类:P11 (简答)3.E-R模型的构成要素:P134.数据库的二级映像:①外模式/模式映像:保证了数据的逻辑独立性②模式/内模式映像:保证了数据的物理独立性例题:数据库系统的核心是(B)A. 数据库B. 数据库管理系统C. 数据模型D. 软件工具第二章知识点:1.简述:键、主键和外键定义和用途 P312.基本关系的性质:关系中的属性(列)必须是原子值,即每个属性都必须是不可

2021-12-28 21:20:38 994 1

原创 C语言之有两个参数的函数

C语言之有两个参数的函数在前面我们了解了有一个参数有返回值的函数,那么可不可以传递两个参数呢?#include <stdio.h>int Add(int a,int b);int main(){ int a = 1; int b = 2; int s = 0; s = Add(a,b); printf("s = %d\n",s); return 0;}int Add(int a,int b){ int c; c = a +

2021-09-16 16:21:32 2488

原创 C语言之有一个参数有返回值的函数

C语言之有一个参数有返回值的函数在我们上中学的时候,常常碰到类似的题目:y = f(x),f(x) = 2x+1,当x=3时,求y的值。我们可以试着通过C语言来解决这一问题。实例1:#include <stdio.h>int f(int x);int main(){ int y = 0; int x = 3; y = f(x); printf("y = %d\n",y); return 0;}int f(int x) // 不能写

2021-09-16 16:20:33 2052

原创 C语言之函数形式参数作用域及生存期

C语言之函数形式参数作用域及生存期首先我们先了解以下什么是实际参数,什么是形式参数实际参数是出现在函数调用圆括号中的表达式。形式参数是函数定义的函数头中声明的变量。前面的例子中的void代表返回值的类型是无类型,可以不写return,如果调用的函数带有参数,则必须传参。调用的时候,传递的参数叫实际参数,对格式没有要求,对数据的类型严格要求。函数中的参数是局部变量,同时它是一个形式参数。下面我们来看一个例子实例1:#include <stdio.h>void test(int);

2021-09-16 16:19:50 2195

原创 C语言之函数介绍

C语言之函数介绍一、什么是函数?函数(function)是完成特定任务的独立程序代码单元。语法规则定义了函数的结构和使用方式。也可以理解为函数是一个功能模块,是程序运行当中包装起来的一个步骤,它把实现某个功能的代码块包含起来,并起一个函数名,供别人调用,如printf函数等。二、为什么要使用函数?使用函数可以省去编写重复代码的苦差。函数让程序更加模块化,从而提高了程序代码的可读性,更方便后期修改和完善。函数也可以多级调用。下面我们来创建并使用一个简单的函数(无类型,无返回值)。实例1:#inc

2021-09-15 15:30:14 777

原创 C语言之while循环和for循环

C语言之while循环一、在前面的if语句中发现我们不能够连续输入成绩,我们可以通过while循环来实现连续的成绩输入。#include <stdio.h>int main(){ int score; int num = 3; // 班里有3个学生 while(num > 0) { printf("请输入成绩:\n"); scanf("%d",&score); if(score <= 0 || score >=

2021-09-09 16:56:20 2668

原创 C语言之if语句

C语言之if语句一、简单形式的if语句可以让程序选择执行一条语句,或者跳过这条语句。实例1:下面我们通过一个简单的代码来判定学生成绩是否合格:#include <stdio.h>int main(){ int score; printf("请输入成绩:\n"); scanf("%d",&score); if(score < 60) // 第一个if语句 { printf("成绩不及格\n"); } i

2021-09-06 17:09:23 7082

原创 第一个C程序

第一个C程序下面我们来看一个简单的C程序first.c#include <stdio.h> //包含另一个文件int main(void) //函数名{ //函数体开始 printf("Hallo World!\n"); //调用一个函数 return 0; //return语句} //结束这个程序应该是我们在大学学习C语言的时候所写的第一个程序,我们可以看到该

2021-09-02 20:31:56 173

原创 初识C语言

初识C语言一、C语言起源1972年,贝尔实验室的丹尼斯·里奇和肯汤普逊在开发UNIX操作系统时设计了C语言(在B语言的基础上进行设计)。C语言设计的初衷时将其作为程序员使用的一种编程工具,因此,其主要目标时成为有用的语言。二、为什么使用C语言C语言简单明了,非常高效,属于高级计算机语言中的底层语言,可以直接操作内存地址,硬件地址。在当下物联网技术的发展中,C语言运行于对性能有着苛刻要求的小型设备中,C语言时最合适的。在大学专业中,通信类,电子类,计算机类等都需要学习C语言,而且一般情况下还是的一门

2021-09-02 17:40:35 76

原创 linux系统编程之网络编程

linux系统编程之网络编程一、引言在进程间通信中了解了各种UNIX系统所提供的经典进程间通信机制(IPC)、‘管道、FIFO、消息队列、信号量以及共享内存。这些机制允许在同一台计算机上运行的进程可以相互通信。与其不同的是,网络进程通信(network IPC)是不同计算机(通过网络连接)上的进程相互通信的机制。我们将描述套接字网络进程间通信接口,进程用该接口能够和其他进程通信,无论它们是在同一台计算机还是在不同的计算机上。实际上,这正是该套接字接口的设计目标之一:同样的接口既可以用于计算机间通信,也

2021-08-23 17:01:24 209

原创 Linux系统编程之线程同步

Linux系统编程之线程同步一、线程同步:即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,实现线程同步的方法有很多,临界区对象就是其中一种。二、简介在一般情况下,创建一个线程是不能提高程序的执行效率的,所以要创建多个线程。但是多个线程同时运行的时候可能调用线程函数,在多个线程同时对同一个内存地址进行写入,由于CPU时间调度上的问题,写入数据会被多次的覆盖,所以就要使线程同步。同步就是协同步调,

2021-08-19 15:51:48 261

原创 Linux系统编程之线程共享内存空间的代码验证

Linux系统编程之线程共享内存空间的代码验证同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(thread-local storage)。那么该如何验证呢,请参考以下代码:#include <stdio.h>#include <pthread.h>#include <unistd.h>

2021-08-19 10:50:15 100

原创 Linux系统编程之线程的创建,等待和退出

Linux系统编程之线程的创建,等待和退出一、线程的创建NAME pthread_create - create a new threadSYNOPSIS #include <pthread.h> int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr,void *(*start_rtn) (void *), void *re

2021-08-19 10:43:09 179

原创 Linux系统编程之线程介绍

Linux系统编程之线程介绍一、线程的概念线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。 —百度百科典型的UNIX进程可以看成只有一个

2021-08-19 10:42:54 79

原创 Linux进程间通信之信号量

Linux进程间通信之信号量一、定义:信号量与已经介绍过的IPC机构(管道、FIFO以及消息队列)不同,它是一个计数器,用于为多个进程提供对共享数据对象的访问(共享资源)。注:在计算机领域,共享资源(shared resource)或网络共享(network share)是指使同一个计算机网络上的其他计算机可使用的某台计算机的计算机资源的行为。换而言之,是使计算机上的一种设备或某些信息可通过另一台计算机以局域网或内部网进行远程访问,且过程透明,就像资源位于本地计算机一般。网络共享可能通过网络上的进程间通

2021-08-18 21:59:29 298

原创 Linux进程间通信之信号

Linux进程间通信之信号一、定义:信号机制是一种使用信号来进行进程之间传递消息的方法,信号的全称为软中断信号,简称软中断。信号的本质是软件层次上对中断的一种模拟(软中断)。它是一种异步通信的处理机制,事实上,进程并不知道信号何时到来。二、在头文件<signal.h>中定义了64种信号,这些信号的名字都以SIG开头,且都被定义为正整数,称为信号编号。可以用“kill -l”查看信号的具体名称。三、信号的产生Linux中的信号可以由以下几种方式产生:·当用户按下某些终端按键后引发终端产

2021-08-18 21:31:02 446

原创 Linux进程间通信之共享存储

Linux进程间通信之共享存储一、定义:共享存储允许两个或多个进程共享一个给定的存储区。因为数据不需要在客户进程和服务器之间复制,所以这是最快的之中IPC。使用共享存储时要掌握的唯一窍门是,在多个进程之间同步访问一个给定的存储区。若服务器进程正在将数据放入共享存储区,则在它做完这一操作之前,客户进程不应当去取这些数据。通常,信号量用于同步共享存储访问。(不过正如部分所述,也可以用记录锁或者互斥量)二、特点:1.共享内存是最快的一种 IPC,因为进程是直接对内存进行存取。2.因为多个进程可以同时操作

2021-08-18 15:56:41 441

原创 Linux进程间通信之消息队列

Linux进程间通信之消息队列一、引言:管道只能在一端读一端写,有一些局限性,而消息队列功能性更强,可以相互发送数据。二、什么是消息队列:消息队列是消息的链接表,存储在内核中,由消息队列标识符标识。在本节中,我们把消息队列简称为队列,其标识符简称为队列ID。消息队列由内核来管理,我们只需要掌握如何创建或打开一个现有的消息队列,如何将新消息添加至指定队列尾端和从队列中获取消息,和控制消息队列(如删除消息队列)。注:每个消息由3部分组成:一个正的长整型类型的字段、一个非负的长度(nbytes)和实际

2021-08-16 18:09:42 160

原创 Linux进程间通信之标识符和键

Linux进程间通信之标识符和键每个内核中的IPC结构(消息队列、信号量或者共享存储段)都用一个非负整数的标识符(identifier)加以引用。例如,要向一个消息队列发送消息或者从一个消息队列取消息,只需要知道其队列标识符。与文件描述符不同,IPC标识符不是小的整数。当一个IPC结构被创建,然后又被删除时,与这种结构相关的标识符连续加1,直至达到一个整型数的最大正值,然后又回转到0.标识符是IPC对象的内部名。为使多个合作进程能够在同一IPC对象上汇聚,需要提供一个外部命名方案。为此,每个IPC对象都

2021-08-16 16:46:09 221

原创 Linux进程间通信之FIFO

Linux进程间通信之FIFO一、引言:FIFO有时被称为命名管道。未命名的管道只能在两个相关的进程之间使用,而且这两个相关的进程还要有一个共同的创建了它们的祖先进程,但是,通过FIFO,不相关的进程也能交换数据。二、...

2021-08-16 11:16:35 592

原创 Linux 进程间的通信之管道

Linux 进程间的通信之管道一、引言:管道有无名管道和命名管道,在这里我们先介绍无名管道,无名管道是Linux系统内核的特殊文件,用于父子进程之间的通信。二、特点:①半双工通信,即数据流只能在一个方向上流动②亲缘进程之前的通信(父子进程和兄弟进程)③特殊的一种文件,不属于任何文件系统,只存在于在内存中包含头文件:#include <unistd.h>三、无名管道通信原理:1.下面描绘了两种半双工管道的方法左图显示管道的两端在一个进程中的相互连接,右图强调数据需要通过内核在管道

2021-08-15 20:18:41 70

原创 Linux进程间通信的介绍

Linux进程间的通信一、引言:在进程中说明了进程控制原语,并且观察了如何调用多个进程。但是这些进程之间交换信息的唯一途径就是传送打开的文件,可以经由fork或exec来传送,也可以通过文件系统来传送。下面将说明进程之间相互通信的其他技术——进程间通信(InterProcess Communication,IPC)。二、概述:进程间通信就是在不同进程之间传播或交换信息进程间通信(IPC,Interprocess communication)是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系

2021-08-14 10:31:20 73

原创 Linux下使用函数popen和pclose

Linux下使用函数popenNAME popen, pclose - pipe stream to or from a processSYNOPSIS #include <stdio.h> FILE *popen(const char *command, const char *type); int pclose(FILE *stream); //popen 的返回值是个标准 I/O 流,必须由 pclose 来终

2021-08-13 17:33:12 183

原创 Linux函数system

Linux函数system与exec的区别1、system()和exec()都可以执行进程外的命令,system是在原进程上开辟了一个新的进程,但是exec是用新进程(命令)覆盖了原有的进程。2、system()和exec()都有能产生返回值,system的返回值并不影响原有进程,但是exec的返回值影响了原进程。NAME system - execute a shell commandSYNOPSIS #include <stdlib.h>

2021-08-13 16:57:02 50

原创 Linux函数exec

Linux函数exec一、概述:当用fork函数创建新的子进程后,子进程往往要调用一种exec函数以执行另一个程序。当程序调用一种exec函数时,该进程执行的程序完全替换为新程序,而新程序则从其main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用磁盘上的一个新程序替换了当前进程的正文段、数据段、堆段和栈段。三、有7种不同的exec函数可供使用,它们常常被统称为exec函数。 #include <unistd.h> e

2021-08-13 10:34:49 3956

原创 Linux进程退出

Linux进程退出一、进程终止方式:进程有5种正常终止及三种异常终止方式5种正常终止方式具体如下。(1) 在main函数内执行return语句。(等效于调用exit)。(2) 调用exit函数。(3) 调用_exit或_Exit函数。(4) 进程的最后一个线程在其启动例程中执行return语句。(5) 进程的最后一个线程调用pthread_exit函数。3种异常终止:(1) 调用abort。(2) 当进程接收到某些信号时。(3) 最后一个线程对“取消”(cancellation)请求作

2021-08-11 10:52:35 4230

原创 Linux进程之函数fork与vfork

Linux进程之函数fork与vfork

2021-08-01 21:07:20 176

原创 Linux进程相关概念

Linux进程相关概念一、概述进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。二、特征:①动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。②并发性:任何进程都可以同其他进程一起并发执行③独立性:进程是一个能独立运行的基

2021-08-01 14:59:46 95

原创 标准C库对文件的操作

标准C库对文件的操作一、概述:Linux文件编程中的open是UNIX系统(包括LINUX、Mac等)的系统调用函数,返回的是文件描述符(File Descriptor),他是文件在文件描述符表里的索引,区别于C语言库函数fopen。fopen是ANSI C标准中的C语言库函数,在不同的系统中应该调用不同的内核api。返回的是一个指向文件结构的指针。open是UNIX系统调用,移植性有限,而fopen是C标准函数,因此拥有良好的移植性。因为open返回的是文件描述符,而文件描述符在UNIX系统中是一个重要

2021-08-01 10:44:28 218

原创 Linux文件编程

linux 文件编程文件操作相关函数linux 文件编程openopen一、引言:可用的文件I/O函数——打开文件、读文件、写文件等。UNIX系统中的大多数文件I/O只需用到5个函数:open、read、write、lseek以及close。然后说明不同缓冲长度对read和write函数的影响。二、文件描述符:对于内核而言,所有打开的文件都通过描述符引用。文件描述符是一个非负整数。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时,使用open或creat返回的文

2021-07-29 22:13:37 53

空空如也

空空如也

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

TA关注的人

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