- 博客(35)
- 收藏
- 关注
原创 Linux进程的五个段(数据段、代码段、bss、堆栈段)
BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。代码段:代码段(code segment/text segment)通常是指用...
2018-10-02 15:50:38
4122
1
原创 Linux进程调度之信号(signal)机制
信号(signal)机制是Unix系统中最为古老的进程间通信机制,很多条件可以产生一个信号:1、当用户按某些按键时,产生信号2、硬件异常产生信号:除数为0、无效的存储访问等等。这些情况通常由硬件检测到,将其通知内核,然后内核产生适当的信号通知进程,例如,内核对正访问一个无效存储区的进程产生一个SIGSEGV信号3、进程用kill函数将信号发送给另一个进程4、用户可用kill命令将信...
2018-08-16 20:28:14
874
转载 我猜,每个程序员对着电梯都想过调度算法吧!
作为程序员,今天你决定翘掉晚上的加班,约女朋友看电影。电影是 20:00 开始。虽然翘掉了加班,但你从公司出来,就已经 19:00 了。公司在望京 SOHO,约会地点在朝阳大悦城。(这点时间,祝你好运吧)也许你运气真的很好,19:50 就赶到商场了。心里想:“还有10分钟才开始,电影院在 F8,乘个直梯,两分钟就到,今天真美好。”你按了上行按钮,并行的 3 部电梯,一...
2018-08-16 20:19:25
368
原创 Linux系统调用——进程控制(C/C++)(Linux)
系统调用——进程控制什么是进程? 进程是资源分配的最小单元,是一个具有一定独立功能的程序的一次运行活动。每个进程都是一个独立的运行单元。 进程与程序的区别?(1)程序是放到磁盘的可执行文件,进程是指程序执行的实例。(2)进程是动态的,程序是静态的。程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制(3...
2018-08-16 20:15:48
1572
原创 Linux系统调用列表(C/C++)(Linux)
Linux系统调用列表以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。按照惯例,这个列表以manpages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允...
2018-08-16 20:14:38
819
原创 Linux进程基础(C语言)
*******************************进程控制编程***************************************#进程的定义: 进程是一个具有一定独立功能的程序的一次运动活动,同时也是资源分配的最小单元。#程序是放到磁盘的可执行文件#进程是指程序执行的实例#进程和程序的区别1.进程是动态的,程序是静态的2.进程是暂时的,程序是长久的...
2018-08-15 20:16:04
971
原创 二叉树的遍历(C语言)(数据结构)
二叉树的基本操作 按前辈们的说法,在嵌入式的开发中并不用得到二叉树。在次就仅仅对二叉树的基本操作作简单介绍。二叉树性质 (1)第 i 层最多有 2^(i-1) 个节点。(2)深度为 k 的二叉树至多有 2^k - 1 个节点。(3)若一个二叉树终端节点个数为 n,度为 2 的节点个数为 m,则有 n = m+1。(4)有 n 个节点的完全二叉树深度为 log2(n) + 1...
2018-08-15 19:48:34
26702
3
原创 队列实现杨辉三角形(数据结构)(C语言)
利用队列的基本功能输出杨辉三角形:实现方案:#include "SequenceQueue.h"int main(){ int N, num, i; Queue *que1 = NULL, *que2 = NULL, *tmp = NULL; if(QueueInit(&que1) != SUCCESS || QueueInit(&que2) != SUCC...
2018-08-10 20:18:06
13890
原创 数据结构(链式队列)(C语言)
利用C语言实现链式队列的基本功能:头文件:#ifndef _LINKQUEUE_H_#define _LINKQUEUE_H_#include <stdio.h>#include <stdlib.h>#define SUCCESS 100#define FAILURE 101#define TRUE 102#define FALS...
2018-08-10 20:14:02
906
原创 利用栈实现计算表达式字符串的值(C语言)
利用后缀表达式的思想,输入一个字符串,计算其值。 计算方案#include "LinkStack.h"int priority(char ch){ switch(ch) { case '(': return 3; case '*': case '/': return 2; case '+': case '-': return 1; d...
2018-08-10 20:11:10
7959
原创 数据结构(顺序队列)(C语言)
利用C语言实现顺序队列:头文件:#ifndef _SEQUENCEQUEUE_H#define _SEQUENCEQUEUE_H#include <stdio.h>#include <stdlib.h>#define SIZE 10#define SUCCESS 10000#define FAILURE 10001#define TRUE 1...
2018-08-10 20:05:01
360
原创 数据结构(顺序栈)(C语言)
利用C语言顺序结构实现栈的基本功能,以及对其进行排序:头文件:#ifndef _SEQUENCE_H#define _SEQUENCE_H#include <stdio.h>#include <stdlib.h>//#include <time.h>#define SIZE 10#define SUCCESS 10000#define ...
2018-08-10 20:00:47
445
原创 数据结构(双向链表)(C语言)
利用C语言实现双向链表的基本功能:头文件://LinkList.c#ifndef _LINKLIST_H#define _LINKLIST_H#define SUCCESS 10000#define FAILURE 10001#define TRUE 10002#define FALSE 10003typedef int Elemtype;typedef s...
2018-08-10 19:53:56
1326
原创 数据结构(链式栈)(C语言)
利用C语言链表实现栈的基本功能:头文件://LinkStack.h#ifndef _LINKSTACK_H#define _LINKSTACK_H#include <stdio.h>#include <stdlib.h>#define SUCCESS 10000#define FAILURE 10001#define TRUE 10002...
2018-08-10 19:48:23
248
原创 数据结构(双向循环链表)(C语言)
C语言实现双向循环链表的基本功能与调试://DoubleCircleLinkLst.h#ifndef _LINKLIST_H#define _LINKLIST_H#include <stdio.h>#include <stdlib.h>#define FAILURE 10000#define SUCCESS 10001#define T...
2018-08-08 20:41:45
2424
1
原创 数据结构(单链表)(C语言)
C语言实现单链表的基本功能与调试:头文件//LinkList.h#ifndef _LINKLIST_H#define _LINKLIST_H#include <stdlib.h>#include <stdio.h>#include <time.h>#define SUCCESS 10000#define FAILURE 10001#d...
2018-08-08 20:30:22
1119
转载 栈在表达式计算过程中的应用
栈在表达式计算过程中的应用 :建立操作数栈和运算符栈。运算符有优先级。 规则: 自左至右扫描表达式,凡是遇到操作数一律进操作数栈。 当遇到运算符时,如果它的优先级比运算符栈栈顶元素的优先级高就进栈。反之,取出栈顶运算符和操作数栈栈顶的连续两个操作数进行运算,并将结果存入操作数栈,然后继续比较该运算符与栈顶运算符的优先级。 左括号一律进运算符栈,右括号一律不进运算符栈,取出运算符栈顶运算符和操...
2018-08-07 14:41:44
3575
转载 用xshell连接VMware中的Linux
【前言】最近想压测一下ITOO的考试系统,所以想在自己电脑上安装一下linux,然后安装一下jmeter进行压测一下。不过为什么要连接xshell呢,因为在虚拟机上总是会和主机切换鼠标,而且也不能粘贴复制,所以用xshell连接就会比较方便。【步骤】一、安装VMware直接点击下一步即可二、安装linux下载CentOS,在VMware中安装,这个网上有很多教程,这里就...
2018-08-06 17:58:49
202
转载 用xshell连接VMware中的Linux
【前言】最近想压测一下ITOO的考试系统,所以想在自己电脑上安装一下linux,然后安装一下jmeter进行压测一下。不过为什么要连接xshell呢,因为在虚拟机上总是会和主机切换鼠标,而且也不能粘贴复制,所以用xshell连接就会比较方便。【步骤】一、安装VMware直接点击下一步即可二、安装linux下载CentOS,在VMware中安装,这个网上有很多教程,这里就...
2018-08-05 11:07:44
692
原创 数据结构(排序算法总结)(C语言)
排序算法常见的有八种:算法一:插入排序插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。算法步骤:1)将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。2)从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某...
2018-08-03 16:59:42
7637
原创 数据结构(顺序表)(C语言)
通过C语言实现数据结构线性表基本功能:头文件://SquenceList.h#ifndef _SEQUENCELIST_H#define _SEQUENCELIST_H#define SIZE 10#define SUCCESS 10000#define FAILURE 10001#define TRUE 10002#define FALSE 10003...
2018-08-02 20:01:32
497
原创 C++学习记录_1
//carrots.cpp#include <iostream>using namespace std;int main(){ int carrots; carrots = 25; cout << "I have " << carrots << "carrots.\n"; carrots--; cout <&am
2018-08-01 19:46:47
156
转载 欢迎使用Markdown编辑器写博客
欢迎使用Markdown编辑器写博客本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I ...
2018-08-01 09:15:39
120
原创 C语言学习记录
结构体和链表、联合体、内存管理相关。1、结构体。//例struct name{ ...... //成员列表};struct name a,b;关于结构体内存分配,遵循以下两个原则:结构体总大小一定是最长成员内存的整数倍(double除外)。 每个成员的偏移量,一定是该成员长度的整数倍。2、链表。struct name{ ........
2018-07-29 19:47:25
282
原创 学习记录(C语言指针、函数相关)
1、关于地址的函数调用参数 谨记传递参数永远传你需要修改的变量的地址。 以为字符串分配空间为例,区别于对字符串内字符的修改。#include <stdio.h>#include <malloc.h>#include <string.h>void meminit(char **str){ *str = (char *)malloc(sizeo...
2018-07-27 19:19:05
210
原创 链表实现通讯录(2018年7月26日)
C语言实现,最终稿:/*链表法实现C语言通讯录。*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <malloc.h>#define LEN sizeof(struct information)typedef struct informatio...
2018-07-26 20:22:35
514
原创 学习记录(2018年7月25日)
1、编写一个C函数,将句子中的单词位置倒置,而不改变单词内部结构.#include <stdio.h>#include <stdlib.h>#include <string.h>void str_rev(char *str, int len){ int i; char tmp; for(i = 0; i < len/2; i++)...
2018-07-25 22:26:20
439
原创 C语言实现通讯录(链表实现)
用c语言实现简易通讯录,代码初稿如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <malloc.h>#define LEN sizeof(struct information)typedef struct information{ ch...
2018-07-24 20:11:49
5051
2
原创 数组和函数(C语言)
个人学习记录:2018年7月23日1、数组定义时,若没有赋值,则必须在[]中输入常数,不允许数组的大小做动态定义。2、全局变量默认为0,局部变量默认为随机值,数组部分初始化,则未初始化的部分置为0。3、数组名作为地址的相关操作。int array[5];printf("%p\n",array+1);printf("&p\n",&array[0]+1);pri...
2018-07-23 21:11:04
2776
原创 学习记录(2018.2.22)
姓名:肖志峰 日期:2018年7月22日学习内容:复习C语言,写作业和趣味100题/*555555的约数里最大的3位数是多少*/#include <stdio.h>int main(){ int i,tmp = 0; for(i=100;i<=999;i++) { if(555555%i == 0) { tmp = i;...
2018-07-22 22:02:27
126
原创 学习记录(2018.7.21)
姓名:肖志峰 日期:2018年7月21日学习内容:C语言基础重点记录:1、32位Linux系统下,各类型所占字节。int 4B,float 4B,double 8B,char 1B,short 2B,long 4B。2、关键字sizeof的用法以及其和函数strlen()的区别。sizeof计算所占内存,而strlen计算字符长度,遇到...
2018-07-21 21:20:19
132
原创 学习记录(2018.7.19)
姓名:肖志峰 日期:2018年7月19日学习内容:vim编辑器,gcc编译器,make和MakMakefile要点记录:1、vim编辑器:1)命令模式,可以对光标所处位置操作。如,x删除一个字符,可数字+x删除多个字符;dd剪切一行,可数字+dd剪切多行;p粘贴;yy复制一行;u撤销。2)底行模式,命令模式下按[esc]进入。:wq或:x保存退出...
2018-07-19 19:32:13
135
原创 学习记录(2018.7.18)
姓名:肖志峰 日期:2018年7月18日学习内容:复习linux操作,自学部分命令,完成随机分组程序要点记录:1、自习文件处理命令和系统管理相关命令。 2、要求将下列名单随机分组:分组要求,随机选择4个人组成一组输出结果:4个人一行进行输出,每行代表一个组。 #include <stdio.h>#include <string.h>...
2018-07-18 20:42:00
207
原创 学习记录(2017.1.17)
姓名:肖志峰 日期:2018年7月17日学习内容:初步了解嵌入式,学习第一个嵌入式操作系统linux的基础操作。要点记录: 1、linux根目录下各目录作用。/bin、/sbin存放可执行二进制文件,/dev设备文件目录,/etc操作系统配置文件目录,/root系统管理员目录,/home默认其他用户目录,/user应用程序存放目录。2、终端常用热键。tab补全命令/文...
2018-07-17 19:58:44
191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人