自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

原创 第六章_信号 : 函数sigsetjmp和siglongjmp

函数sigsetjmp和siglongjmp在信号处理程序中经常调用longjmp函数以返回到程序的主循环中,而不是从该处理程序返回。但是,调用longjmp有一个问题。当捕捉到一个信号时,进入信号捕捉函数,此时当前信号被自动地加到进程的信号屏蔽字中。这阻止了后来产生的这种信号中断该信号处理程序。(仅当从信号捕捉函数返回时再将进程的信号屏蔽字复位为原先值)如果用longjmp跳出信号处理程序,那么,对此进程的信号屏蔽字会发生什么呢?(setjmp和longjmp保存和恢复信号屏蔽字,还是不保存和恢复,不

2020-11-30 20:00:56 1490 1

原创 第六章_信号 : 信号集和可靠信号机制

信号集的处理函数阻塞信号实际执行信号的处理动作称为信号递达(Delivery)信号从产生到递达之间的状态,称为信号未决(Pending)。进程可以选择阻塞 (Block )某个信号。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作.注意,阻塞和忽略是不同的,只要信号被阻塞就不会递达,而忽略是在递达之后可选的一种处理动作每个信号都有两个标志位分别表示阻塞(block)和未决(pending),还有一个函数指针表示处理动作。信号产生时,内核在进程控制块中设置该

2020-11-30 19:19:29 274

原创 第六章_信号 : 信号的发送接收机制:具有超时功能的API

具有超时功能的API常见的低速系统调用包括➢ 读写(read、write)管道、终端设备、网络➢ 打开(open)终端设备等➢ pause、wait函数➢ 某些ioctl操作➢ 某些进程间通信函数➢ 注意:磁盘I/O并不属于这类低速系统调用。因为只要不是硬件错误,I/O操作总会返回。带有超时功能的read函数#include<stdio.h>#include<signal.h>#include<unistd.h>#include<stdl

2020-11-23 16:50:41 206

原创 第六章_信号 : 函数sleep

函数sleep该函数用于让调用进程挂起,直到➢ 已经过了指定的时间,或者➢ 调用进程捕捉到一个信号,并从信号处理程序返回#include <unistd.h>unsigned int sleep(unsigned int seconds);返回值:➢ 若已经过了指定的时间,则返回0➢ 若调用进程捕捉到一个信号,并从信号处理程序返回,则sleep提前返回,返回值是未睡够的秒数示例程序#include <stdio.h>#include <stdlib.h&

2020-11-22 15:44:25 243

原创 第六章_信号 : 函数alarm和pause

函数alarm和pause函数alarm使用alarm函数可以设置一个计时器,在将来某个指定的时间,该计时器会超时。当计时器超时时,产生SIGALRM信号。如果不忽略或不捕捉此信号,则其默认动作是终止调用该alarm函数的进程。#include <unistd.h>unsigned int alarm( unsigned int seconds );返回值:0或以前设置的闹钟时间的余留秒数其中,参数seconds的值是秒数,经过了指定的seconds秒后会产生信号SIGALRM。要

2020-11-22 14:40:41 269

原创 第六章_信号 : 函数kill和raise

函数kill和raisekill函数将信号发送给进程或进程组。raise函数则允许进程向自身发送信号。#include <signal.h>int kill(pid_t pid, int signo);int raise(int signo);两个函数返回值:若成功则返回0,若出错则返回-1调用raise(signo);等价于调用kill(getpid(), signo);kill的pid参数有4种不同的情况:进程将信号发送给其他进程需要权限:超级用户可将信号发送

2020-11-22 10:49:06 251

原创 第六章_信号 : signal函数--信号

signal函数–信号常见的信号类型signal信号机制是属于计算机异常处理机制中的一种。signal信号属于一种异步处理异常的机制之一。类似于我们平常在命令行上对于死循环的程序,按下ctrl-z暂时挂起,ctrl-c程序终止,这些挂起,终止信号都属于signal信号的一种,常见的几种signal信号如下图所示(供查询使用,平时并无用):常见的信号如下:发送信号常用的方法通过/bin/kill程序发送信号:/bin/kill -9 15213发送信号给进程15213/bin/kil

2020-11-22 01:51:36 3959

原创 第六章_信号 : 函数psignal和strsignal

函数psignal和strsignalpsignal函数#include <signal.h>void psignal(int signo, const char *msg);功能:该函数可移植地打印信号编号与对应的字符串,常用来输出信号的出错消息参数 参数1:信号编号 参数2:自定义的字符串(通常为程序名)打印的样式:字符串msg在最前面,后面跟一个冒号加一个空格,后面再加上对该信号的说明,最后是一个换行符msg: 信号说明\n如果msg为NULL,则只

2020-11-22 01:02:07 1549

原创 8086系列(18):查找电话号码

题目1.题目:查找电话号码phone2.实验要求:(1)建立一个可存放50项的电话号码表,每项包括任命(20个字符)及电话号码(8个字符)两部分;(2)程序可接收输入人名及相应的电话号码,并把它们加入电话号码表中;(3)凡有新的输入后,程序应按照人名对电话号码表重新排序;(4)程序可接收需要查找电话号码的人名,并从电话号码表中查出其电话号码,再在屏幕上以如下格式显示出来。name tel.××× ×××3.提示:程序采用子程序结构。主程序的部分主

2020-11-21 09:20:12 2053

原创 1055 集体照 (25point(s))

1055 集体照 (25point(s))拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下:每排人数为 N/K(向下取整),多出来的人全部站在最后一排;后排所有人的个子都不比前排任何人矮;每排中最高者站中间(中间位置为 m/2+1,其中 m 为该排人数,除法向下取整);每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、186、175、170,则队形为175、188、190、186、170。这里假设你面对拍照者,所以你的左

2020-11-20 22:31:00 123

原创 1054 求平均值 (20point(s))

1054 求平均值 (20point(s))本题的基本要求非常简单:给定 N 个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [−1000,1000] 区间内的实数,并且最多精确到小数点后 2 位。当你计算平均值的时候,不能把那些非法的数据算在内。输入格式:输入第一行给出正整数 N(≤100)。随后一行给出 N 个实数,数字间以一个空格分隔。输出格式:对每个非法输入,在一行中输出 ERROR: X is not a legal number,其中 X 是输入。最

2020-11-20 22:03:51 124

原创 1052 卖个萌 (20point(s))

1052 卖个萌 (20point(s))萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见,我们假设一个表情符号是按下列格式输出的:[左手]([左眼][口][右眼])[右手]现给出可选用的符号集合,请你按用户的要求输出表情。输入格式:输入首先在前三行顺序对应给出手、眼、口的可选符号集。每个符号括在一对方括号 []内。题目保证每个集合都至少有一个符号,并不超过 10 个符号;每个符号包含 1 到 4 个非空字符。之后一行给出一个正整数 K,为用户请求的个数。随后 K 行,每行

2020-11-20 21:48:49 137

原创 1051 复数乘法 (15point(s))

1051 复数乘法 (15point(s))复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i​2​​=−1;也可以写成极坐标下的指数形式 (R×e​(Pi)​​),其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角形式 R(cos§+isin§)。现给定两个复数的 R 和 P,要求输出两数乘积的常规形式。输入格式:输入在一行中依次给出两个复数的 R​1​​, P​1​​, R​2​​, P​2​​,数字间以空格分隔。输出格式:在一行中按照

2020-11-20 20:36:08 454

原创 SIR

疫情数据预测疫情来势汹汹,在家闲着无聊的我事先预备好疫情数据,准备预测一下疫情未来的走势。载入数据获取事先已经爬取好的疫情数据,通过作图分析,发现病毒蔓延的实在疯狂,从未料到2020年的大门被一场巨大的灾难打开。import matplotlib.pyplot as pltimport numpy as npimport pandas as pdfrom sklearn.prepro...

2020-11-18 23:07:48 999 9

原创 第五章_进程 : 进程,进程组,会话关系

进程进程是操作系统的一个核心概念。每个进程都有自己唯一的标识:进程ID,也有自己的生命周期。一个典型的进程的生命周期如图4-1所示。进程都有父进程,父进程也有父进程,这就形成了一个以init进程为根的家族树。除此以外,进程还有其他层次关系:进程、进程组和会话。进程组和会话在进程之间形成了两级的层次:进程组是一组相关进程的集合,会话是一组相关进程组的集合。这样说来,一个进程会有如下ID:·PID:进程的唯一标识。对于多线程的进程而言,所有线程调用getpid函数会返回相同的值。·PGID:进程组

2020-11-18 23:03:55 975

原创 8086系列(17):子程序参数传送----通过堆栈传送参数地址

题目题目和上一篇一样,都是累加数组中的元素。思路采用通过堆栈传送参数地址法的程序,是在主程序里把参数地址保存到堆栈中,在子程序里从堆栈中取出这些参数以达到传送参数的目的。必须注意,子程序结束时的RET指令应该使用带常数返回的指令,常数大小和保存到堆栈的地址相关,以便返回主程序后,堆栈能恢复原始状态不变。堆栈情况示意图,图中所示程序是far型的,Call的时候push进了cs和ip。为什么是bp? 因为bp默认的段地址是堆栈段,如果用其它如(bx)需要 ss:[bx]代码;;;;;;;;通过堆

2020-11-18 16:21:11 1608

原创 8086系列(16):子程序参数传送----通过地址表传送参数地址

题目题目和上一篇一样,都是累加数组中的元素。思路采用地址表传送参数,这种方法是在主程序中建立一个地址表,要把传送给子程序的参数存放在地址表中,然后把地址表的首地址通过寄存器BX传送到子程序中去。子程序通过地址表取得所需参数,并把结果存入指定的存储单元去。代码;;;;;;;;通过直接访问模块传递参数;;;;;;;;;;;datasg segment ary dw 1,2,3,4,5,6,7,8,9,10 count dw 10 sum dw ? table dw 3

2020-11-18 15:44:40 772

原创 8086系列(15):子程序参数传送----通过直接访问模块中的变量传递参数

题目主程序MAIN和过程PROADD在同一源文件中,要求用过程PROADD累加数组中的所有元素,并把和(不考虑溢出)送到指定的存储单元去。思路如果通过直接访问模块中的变量传递参数那么子程序就被写死了,如果要求再计算一次求和,那么子程序将无法复用,下一节将介绍第三种方法,通过地址表传送参数地址。代码;;;;;;;;通过直接访问模块传递参数;;;;;;;;;;;datasg segment ary dw 1,2,3,4,5,6,7,8,9,10 count dw 10 sum

2020-11-18 15:29:56 389

原创 8086系列(14):子程序参数传送----通过寄存器传送参数

题目十进制到十六进制数转换程序。程序要求从键盘取得一个十进制数,然后把该数以十六进制形式在屏幕上显示出来。思路主程序部分十分简单,调用一个子程序DECIBIN实现从键盘取得十进制数并把它转成二进制数;另一个子程序BINHEX把此二进制数以十六进制数显示出来。另外用CRLF子程序取得回车和换行的效果,BX寄存器用来在过程间传递要转换的数。代码;;;;;;;;通过寄存器传递参数;;;;;;;;;;;datasg segmentdatasg ends;----------------------

2020-11-18 15:15:08 781

原创 8086系列(13):跳跃表法

题目试根据AL寄存器中哪一位为1(从低位到高位)把程序转移到8个不同的程序分支去。输入AL的第几位为1,输出转移到第几个分支。思路分支程序的实现方法主要有三种:第一种是菱形分支,可以直接用 jmp 类指令进行判断跳转第二种是逻辑尺,反应了每次要做的操作第三种就是跳跃表法。以下程序使用变址寻址的方式使用跳跃表法,还可以使用寄存器间接和基址变址方式来达到同一目的。代码datasg segment branch_table dw routine_1 d

2020-11-16 18:03:07 891

原创 8086系列(12):折半查找

题目在附加段中,有一个从小到大顺序排列的无符号数组,其首地址存放在DI寄存器中,数组中的第一个单元存放着数组的长度。在AX中有一个无符号数,要求在数组中查找AX,如找到,CF=0,并在SI中给出该元素在数组中的偏移地址;如未找到,置CF=1思路折半查找过程如下:(1) 初始化被查找数组的首尾下标,low=1,high=n(2) 若low>high 则查找失败,置CF=1,退出程序否则计算中点 mid = (low+high)/2(3) ax与中点元素比较,若ax = r[mid] ,则查

2020-11-16 16:09:24 434

原创 8086系列(11):冒泡排序改进

题目给一个长度为n的数组进行冒泡排序。思路相较上一篇的冒泡排序,数组需要比较(N-1)遍,但是有时候比较的遍数未达(N-1)时就已经整序完毕,但程序必须运行到(N-1)次才能结束。为了提高效率,可以采用一个交换标志位,每次进入外循环就置交换标志位为1,在内循环中每做一次交换操作就置标志位为0,每次内循环结束后,可以测试交换标志位,如果该位为0,则交换过再次进入外循环,否则就立即结束外循环。代码datasg segment array dw 3,5,6,1,4,2,9,7,0,8 n

2020-11-16 15:15:15 264

原创 1050 螺旋矩阵 (25point(s))

1050 螺旋矩阵 (25point(s))本题要求将给定的 N 个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为 m 行 n 列,满足条件:m×n 等于 N;m≥n;且 m−n 取所有可能值中的最小值。输入格式:输入在第 1 行中给出一个正整数 N,第 2 行给出 N 个待填充的正整数。所有数字不超过 10​4​​,相邻数字以空格分隔。输出格式:输出螺旋矩阵。每行 n 个数字,共 m 行。相邻数字以 1 个空格分隔

2020-11-15 20:16:16 128

原创 1049 数列的片段和 (20point(s))

1049 数列的片段和 (20point(s))给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列 { 0.1, 0.2, 0.3, 0.4 },我们有 (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4) 这 10 个片段。给定正整数数列,求出全部片段包含的所有的数之和。如本例中 10 个片段总和是 0.1 +

2020-11-15 19:29:09 56

原创 1048 数字加密(20 分)

1048 数字加密(20 分)本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入格式:输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。输出格式:在一行中输出加密后的结果。输入样例:

2020-11-15 19:14:14 119

原创 8086系列(10):冒泡排序

题目从键盘上输入任意个数字,存放在数组BUFFER中,编制程序使该数组中的数按照从小到大排序,最终输出结果。思路采用冒泡排序,从第一个数开始对相邻的两个数进行比较,如次序对,则不需要任何操作;如果次序不对,则交换两个数的位置。N个数第一轮需要比较(N-1)次,第二轮需要比较(N-2)次,比较(N-1)+(N-2) + … + 1 就可以完成冒泡排序。程序结构分为三个部分,输入部分、排序部分和输出部分,输入部分将十进制数不加转换地存入内存中,输出只需要将内存中的数以16进制数输出即可,这里并不需要判断

2020-11-15 09:31:36 1513 1

原创 8086系列(9):键盘控制输入

题目试着编制一程序,从键盘输入一行字符,要求第一个键入的字符必须是空格,如不是,则退出程序;如是,则开始接受键入的字符并顺序放在首地址为BUFFER的缓冲区中(空格不存入),直到接收到第二个空格符时退出程序。思路这一程序要求接受的字符从空格开始从空格结束,因此程序必须区分所接受的空格是不是第一个字符,设立标志位存储单元FLAG,一开始置为0,接受空格后置为1。代码datasg segment buffer db 80 dup(?) flag db ?datasg ends;--

2020-11-14 16:22:46 1459

原创 8086系列(8):逻辑尺

题目设有数组X和Y。X数组中有X1,…,X10;Y数组中有Y1,…,Y10。试编制程序计算Z1=X1+Y1,Z2=X2+Y2,Z3=X3-Y3,Z4=X4-Y4,Z5=X5-Y5,Z6=X6+Y6,Z7=X7-Y7,Z8=X8-Y8,Z9=X9+Y9,Z10=X10+Y10,结果存入Z数组。思路对于这种问题可以使用循环结构来完成,由于每次循环的操作位不同,我们可以事先设立标志位存放于逻辑尺中,进入循环后取出每一个位就可以判断做哪种操作了。代码datasg segment x dw 0,1,

2020-11-14 15:57:37 1731 1

原创 8086系列(7):字符串分类计数

题目从键盘输入一系列字符(以回车符结束),并按字母、数字及其他字符分类计数,最后显示出这三类的计数结果。思路分支的极致运用,按照ASCII码由小到大进行比较,有点麻烦。详细解释见代码。代码datasg segment ALPHABET db 'alaphabet:','$' NUMBER db 'number:','$' OTHER_ db 'other:','$' CRLF db 13,10,'$'datasg ends;------------codesg

2020-11-11 20:07:23 858 1

原创 8086系列(6):寻找数组A和B中相同的元素

题目已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一程序,把既在A中又在B中出现的整数存放于数组C中。思路取出数组A中的元素放入AX,用串查找指令查找AX是否出现在数组B中,如果出现则放入数组C。在查找过程中涉及到二重循环,一是取出数组A中的元素,二是scasw在B查找,我都使用了cx计数器,做法是在scasw查找B之前先把cx push到堆栈里,之后再弹出。代码datasg segment array_A dw 0,1,2,3,4,5,6,7,8,9,10,1

2020-11-11 19:18:12 1323

原创 8086系列(5):数组中插入一程序

题目将正数N插入一个已整序的字数组的正确位置。该数组的首地址&末地址分别为ARRAY_HEAD和ARRAY_END,其中所有数均为正数且已按递增的次序排列。思路由于首地址和末地址已知,所以数组的长度是已知的,但是我们没有用到数组的长度,而是以找到插入的位置作为终止条件,这就需要我们在首地址前多放一个无穷小的字,确保可以插入到第一个位置以结束循环。我们从尾部向头部开始查找,如果没有找到插入的位置,就将该数往右移动一个单元,以此类推。代码datasg segment x dw ? a

2020-11-11 16:21:35 605

原创 8086系列(4):查找数组中的数并将其删除

题目在附加段中,有一个首地址为LIST的未经排序的字数组。在数组的第一个字中,存放着该数组的长度,数组的首地址已经存放在DI寄存器中,AX寄存器中存放着一个数。要求在数组中查找该数,如果找到将其从数组中删除。思路这一程序首先查找数组中是否有AX,如果没有则不对数组做任何处理就结束,如果找到这一元素,则把此数后的元素向前移动一个字,如果找到的元素正好位于数组末尾,则直接修改数组长度就可以了。这里巧妙地用到了串比较指令scasw,计数器cx在串比较指令完成后其实就是需要移动数组的个数。代码datas

2020-11-11 15:56:48 1430

原创 8086系列(3):统计Y中1的个数

题目在ADDR单元中存放着数Y的地址,试编制一程序把Y中的1的个数存入COUNT单元中思路可以从最高位开始判断是不是1,这里巧妙地用到了test指令,用 test ax,0ffffh,最高是不是1影响到了符号标志位SF,同时也可以判断后面是否全部为0,提高了效率。代码datasg segment addr dw number number dw 1010101010101010B count dw ?datasg ends;----------------codes

2020-11-11 09:41:57 946

原创 第五章_进程 : 函数system

函数system函数原型#include<stdlib.h>int system(const char * command)函数功能执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令,参数字符串command为命令名。另,在windows系统下参数字符串不区分大小写。说明:在windows系统中,system函数直接在控制台调用一个command命令。在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行com

2020-11-10 23:02:49 139

原创 第五章_进程 : 函数setuid、setgid

函数setuid、setgid #include <sys/types.h>#include <unistd.h>int setuid(uid_t uid);int setgid(gid_t gid);改变用户/组ID的规则1、若进程具有超级用户权限,则setuid将实际用户ID、有效用户ID、保存的设置用户ID设置为uid2、若进程没有超级用户权限,但uid等于实际用户ID或保存的设置用户ID,则setuid只将有效用户ID设置为uid,不改变实际用户ID和保存的设

2020-11-10 22:59:01 528

原创 8086系列(2):查找匹配字符串

题目查找匹配字符串:程序接收用户键入的一个关键字以及一个句子。如果句子中不包含关键字则显示’No match!’;如果句子中包含关键字则显示‘Match’,且把该字在句子中的位置用十六进制数显示出来。思路(1) 输入关键字和一个句子,分别存入相应的缓冲区(2)在句子中查找关键字关键字和句子中相应字段的比较可以使用串比较指令,附加段和数据段定义为同一段,以便串指令的使用。下面说明比较过程中寄存器的使用情况:SI:存放原串首地址DI:存放目的串首地址CL:关键字长度 (keyword的长度

2020-11-07 16:30:12 1621

原创 8086系列(1): 试编制一个程序把BX寄存器中的二进制数用十六进制数的形式在屏幕上显示出来

题目例5.1 试编制一个程序把BX寄存器中的二进制数用十六进制数的形式在屏幕上显示出来。思路想要将BX中的值一位一位的显示,我们首先想到利用循环移位,然后取出每一位的数并转化为字符串进行显示。要如何移位呢?通过循环右移4位把最高字节的数移到最低位,然后与0fh相与,取出该位。设置cx计数器为4,移位4次就可以将BX中的数全部取出,这里涉及到了循环。要如何将每一位的数转化为ASCII码呢,可以看到0-9的ASCII码对应的是30H-39H,而A-F的ASCII码对应的是41H-46H。这必然要用

2020-11-07 14:10:22 5572 3

原创 1045 快速排序 (25point(s))

1045 快速排序 (25point(s))著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定 N=5N = 5N=5, 排列是1、3、2、4、5。则:1 的左边没有元素,右边的元素都比它大,所以它可能是主元;尽管 3 的左边元素都比它小,但其右边的 2 比它小,所以它不能是主元;尽管 2 的右边元素都比它

2020-11-06 19:47:54 111

原创 第五章_进程 : 函数setjmp和longjmp

函数setjmp和longjmp非局部跳转语句—setjmp和longjmp函数。非局部指的是,这不是由普通C语言goto,语句在一个函数内实施的跳转,而是在栈上跳过若干调用帧,返回到当前函数调用路径上的某一个函数中。#includeInt setjmp(jmp_buf env); 返回值:若直接调用则返回0,若从longjmp调用返回则返回非0值Void longjmp(jmp_buf env,int val);在希望返回到的位置处调用setjmp,此位置在main函数中,因为直接调用

2020-11-02 20:19:53 206

原创 第五章_进程 : Unix系统环境变量

函数getenv和putenv等Unix系统的环境变量Unix是一个多用户的操作系统,每个用户登录系统之后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的。这个默认的环境实际上就是一组环境变量的定义,用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。环境变量一般用大写加下划线命名(例如,PATH、ORACLE_HOME )。环境变量就相当于一个指针,当我们要查看指针所指向的值的时候需要解引用。同样的,当我们想要查看环境变量里面的值的时候,需要在前面加 $ 引用。linu

2020-11-02 15:51:56 657

html+css快速入门教程.pdf

nodeing课堂的资料 html+css个人觉得还不错,总结了经典的知识,满满的干货

2020-06-25

大话数值分析.pdf

史上最全的数值分析资料(可作为期末复习资料),花费N天时间精心总结出最重点的知识

2020-06-24

空空如也

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

TA关注的人

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