自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 系统级调用函数

1,打开和关闭文件进程是通过open函数来打开一个已存在的文件或者创建一个新文件的。int open(char *filename ,int flags,mode_t mode)open函数将filename转换为一个文件描述符,并且返回描述符数字。flag参数指明了进程打算如何访问这个文件。o_RDONLY:只读O_WEONLY:只写O_RDWR:可读可写O_CREAT 如...

2019-12-03 11:01:53 194

原创 进程

先用几个概念铺垫下:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可...

2019-11-06 23:37:19 121

原创 可重定位文件

今天分享的是代码在Linux中是如何一步步运行的。通过之前所学知识,我了解了代码运行的步骤是:预处理,编译,汇编,链接,最后再形成一个可执行文件。通过前面的学习,我们已经了解了预处理:在编译之前进行的处理。 C语言的预处理主要有三个方面的内容: 1.宏定义; 2.文件包含; 3.条件编译。 预处理命令以符号“#”开头。编译:即将代码变成汇编语言。汇编:就是将汇编语言转换成机器可以理解的二进制...

2019-10-29 11:34:16 358

原创 图的创建以及深度搜索

由于时间的原因,只是用了邻接矩阵来存储图。#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std;#define MAX_NUM 20typedef int VertexType;typedef struct ArcNode{ int adj...

2019-05-30 16:45:49 155

原创 缓冲区溢出显示

以下为检测的代码/* Demonstration of buffer overflow (缓冲区溢出显示)*/#include <stdio.h>#include <stdlib.h>/* Implementation of library function gets() */char *gets(char *dest){ int c = getchar()...

2019-05-26 15:41:15 183

原创 查看变量位置

#include <stdlib.h>#include <stdio.h>#include <unistd.h>static void show_pointer(void *p, char *descr) { // printf("Pointer for %s at %p\n", descr, p); printf("%s\t%p\t...

2019-05-26 15:23:29 358

原创 计算机加法不满足结合律

计算机中的加法根据数据类型不同而不同,但都是以二进制的形式相加,我们以浮点型的数据相加为例。浮点型数据相加需要先对阶,而浮点数只占32位,那么在对接中,就有可能使得数据丢失。这就是下面代码所描述的东西。#include <stdio.h>#include <stdlib.h>#include <string.h>#define BUFSIZE 256in...

2019-05-26 11:35:30 2508

原创 猜猜你的栈大概有多大

添加摘要 我们如何自己通过代码大概判断栈的大小?(实际上,你只要知道挺大的。)在递归过程中,我们不断的在调用栈来储存返回地址,参数什么等等东西,所以我们可以通过递归来看看栈的大概大小。上代码:/* Example of deep recursion */#include <stdio.h>#include <stdlib.h>...

2019-05-26 10:44:34 230

原创 简述栈溢出

#include <stdio.h>#include <stdlib.h>typedef struct { int a[2]; double d;} struct_t;double fun(int i) { volatile struct_t s; s.d = 3.14; s.a[i] = 1073741824; /* Poss...

2019-05-26 10:23:46 154

原创 查看溢出(简述计算机溢出原理)

你是否细心观察到计算机所能表示的数字存在范围,那么计算机表示数字的范围是如何产生的呢?我们定义一个int型的变量,已知他在存储中占用32位且数字在计算机中采用二进制的方式存储,那就不难理解32位二进制必然存在表示的范围。而int又分为无符号和有符号两种,他们的区别在于有符号要用首位去存储正负(0表示正数,1表示负数),那有符号整型最大就是0111 1111 1111 1111 1111 1111...

2019-05-25 17:52:43 5019

原创 十六进制数字转换为字符串

今天介绍一个能将遗传命令行的十六进制数字转换为以‘\n’结尾的字符串代码,开始的代码有些小错误。1.其中的strtoul()函数需要包含头文件<stdlib.h>,原型是unsigned long int strtoul(const char nptr, char **endptr, int base);base即代表数字的进制。2.一定要有始有终,前有’/‘后要有’*/’。/*...

2019-05-25 16:20:58 3157

原创 展示数据在计算机中的存储地址以及形式代码

show-bytes - prints byte representation of data // $begin show-bytes /#include <stdio.h>//包含头文件/ $end show-bytes /#include <stdlib.h>#include <string.h>/ $begin show-bytes */...

2019-04-07 14:36:53 522

空空如也

空空如也

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

TA关注的人

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