自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 论坛 (1)
  • 收藏
  • 关注

原创 C语言结构体-大小,对齐,填充,使用及其他

C语言结构体-大小,对齐C语言中的结构体(struct)的定义在C语言中,最常用的数据结构就是结构体了,结构体也是其它数据结构(比如链表等)的基础,结构体的使用非常简单。比如,定义一个结构体:struct TEST_STRUCT{ char Name[20]; int Age; char Sex;};在使用TEST_STRUCT的时候也很方便,如下代码所示:void TestStruct(){ struct TEST_STRUCT test;

2020-12-11 08:43:32 43 1

原创 /bin/bash^M: bad interpreter

一种简单的方式是使用vi打开文件,然后执行:set ff=unix然后保存即可

2020-07-15 21:09:46 38

原创 C语言基础排序算法-选择排序

C语言基础排序算法-选择排序什么是选择排序?选择排序(Selection sort)是一种简单直观的排序算法,第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序过程假设有一个数组,3,2,5,4,1按照从小到大的顺序排序,最后的结果为1,2,3,4,5,则每一次的排序过程为:初始状态第一次交换后,状态为:由于3大.

2020-07-08 12:16:45 108

原创 C语言基础排序算法-冒泡排序
原力计划

C语言基础排序算法-冒泡排序什么是冒泡排序?顾名思义,这种排序方法就像水中的气泡一样,从底逐渐往上冒,一次前进一步。我们来看一个例子,看看到底是怎么冒泡的。假设有一个数组3,2,5,4,1,我们希望按照从小到大的顺序排序,最后的结果为1,2,3,4,5。记住冒泡算法的关键一点是每次相邻的两个元素进行比较,如果不满足排序的要求(比如后面的一个元素大于前面的元素),则进行交换。基本原理如下:(1) 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。.

2020-07-03 13:44:11 307 1

原创 C语言文件读写(5)-文件位置相关

C语言文件读写(5)-文件位置相关当打开一个文件以后,无论是读还是写,都有一个指示文件位置的这么一个东西,我们可以称之为文件的位置指示器或者文件位置指针,文件位置指示器指明了当前文件读或者写的位置信息,每读写一次,文件的位置指示器都会跟着变化,更新。比如说我们要在文件的指定位置写数据怎么办?我们不可能从文件开始一直写,写到文件的指定位置,然后写入我们要写的数据,C语言还提供了几个跟文件位置有关的函数,可以用来获取文件的位置,设置文件的位置等等。先看rewind,函数原型为: .

2020-07-01 18:16:37 235

原创 C语言文件读写(4)-判断文件是否结束
原力计划

C语言文件读写-判断文件是否结束在读文件的时候,很重要的一个条件是:文件是否结束,因为文件已经结束了,就不用继续读文件了。判断文件结束,有许多方式,比如读取文本文件和二进制文件就可以使用不同的方式,下面分别进行详细介绍和举例。使用EOF判断文件是否结束EOF的值为-1,所以往往使用EOF也可以判断文件是否结束,一般用在非格式化文本文件读取中,如果在格式化文本读取时使用EOF来判断,在某些情况下是会出错的。函数fgetc返回的值为一个字符,当文件结束时,返回EOF,因为文本文件中可打印字符

2020-07-01 08:37:33 1108 1

原创 C语言文件读写(3)-二进制文件读写操作

C语言文件读写-二进制文件写操作先说说什么是二进制文件,二进制文件是相对于文本文件而言的,文本文件是由一行一行的字符的有序序列组成的。二进制文件就没有行的概念了,也是由有序的字符组成的,但是在写入数据的时候,系统并不会做任何的转换,是什么就写入什么,也不会添加换行符之类的。通常情况下,二进制文件我们很难用“肉眼”去查看文件的内容,因为内容往往都是很难直接去阅读的,所有的内容都是连续的,也不会出现换行的情况,所以可读性很差。这是狭义的二进制文件,广义上来讲,所有的文件我们都可以称之为二进制文件,任

2020-06-30 22:01:31 311

原创 C语言文件读写(2)-文本文件写操作

C语言文件读写-文本文件写操作在上一篇中介绍了如何读取文本文件https://blog.csdn.net/zhanghaiyang9999/article/details/107032563这一篇将详细介绍如何写文本文件,由于在读取文本文件那篇文章中介绍的比较详细,因此我们这篇文章就会轻松很多了,如果没有看过上一篇文本文件读操作的文章的话,建议先读一下,有些知识会理解得更好一些。《C语言文件读写-文本文件读操作》这篇文章介绍了什么是文本文件,以及如何打开文本文件的模式以及如何进行正确地读取,

2020-06-30 17:20:27 115

原创 C语言文件读写(1)-文本文件读操作

C语言文件读写-之文本文件读写

2020-06-30 12:40:09 2260 1

原创 Debug Assert Failed 怎么办?

C/C++调试快速入门与提高https://edu.csdn.net/course/detail/28915就像这里视频里面提到的一样,当你看到这个对话框的时候一定不要慌张,也不要吃惊,而是应该感到激动和高兴,因为这表示你离解决这个BUG又进了一步。怎么办呢?不要点击终止和忽略,点击“重试”按钮,立即就会进入到问题所在地,如图所示。然后继续,打开堆栈窗口,定位到自己代码行。如图所示:对,就是delete的问题,因为我把一个数组去delete了。其他的错误也是.

2020-05-26 08:30:39 323

原创 使用VC++远程调试Linux程序

为什么要用VC++来调试Linux程序Linux下面的gdb也很好用,说真的,缺点是在调试大型程序的时候不太方便,比如来回的切换线程,查看堆栈等等,总是没有那么直观,但是VC就好一些,毕竟是GUI界面,线程切换,堆栈查看等等,要方便很多,再比如查看内存值,函数参数等等,VC的图像界面就要占一些优势,话不多说,开启调试Linux程序之旅。更详细的描述,可以参考https://edu.csdn.net/course/detail/28915远程调试Linux程序准备工作Linux上.

2020-05-18 10:42:53 223

原创 如何在程序中生成崩溃转储dump文件以及如何分析dump

关于更详细的内容,如果有兴趣,可以访问下面的视频https://edu.csdn.net/course/detail/28915程序崩溃的时候如何生成dump文件话不多说,直接上代码,下面的程序会崩溃,而且会在崩溃的时候在运行目录生成dump文件。#include "stdafx.h"#include <Windows.h>#include <Dbghelp.h>#include <stdio.h>LONG WINAPI handle_e.

2020-05-17 14:14:03 392

原创 error C4335: Mac file format detected: please convert the source file to either DOS or UNIX format

vc里面遇到这个问题的解决方案error C4335: Mac file format detected: please convert the source file to either DOS or UNIX format原因很有可能是通过QQ传输文件或者是真的是Mac电脑上存的文件,格式会有点不同,所以VC编译的时候会报错。解决方案1.选择将文件另存为,如图所示2.另存的时候选择 “Save with Encoding”,如图所示3.在Line endings中选择

2020-05-16 22:12:00 139

原创 什么是死锁?为什么会死锁?如何解决死锁问题?如何调试死锁问题?

什么是死锁?锁,顾名思义,含义真的就是我们平常每天看到的那个锁,锁门的锁,如果门锁着,那就进不去了,那就只能在门外等着。软件中的锁,意义和这个类似,也是为了阻止非授权用户能够进入某些代码的执行,如果要想执行被锁保护(同步)的代码,那么必须要先获得锁,如果你想进去的时候,别人正在拥有这个锁,你也只好等待了,必须等到被人使用完了以后才能进入被保护或者被同步的代码执行。什么是死锁呢?死锁是指两个或两个以上的线程或者进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,而且会一直阻塞

2020-05-15 09:14:37 173

原创 Apache + PHP为什么不能在www目录下写文件以及如何解决PHP写文件问题

本文以Ubuntu为例,其他的Linux系统类似。环境为Apache + PHP搭建的web服务器假设网站根目录为/var/www/html问题:直接通过shell执行PHP,在网站目录下面读写文件没有问题,但是通过浏览器访问php,却不能写文件。原因:Apache是通过用户www-data来执行PHP的,所以PHP能够做什么,取决于用户www-data能做什么?一般情况下,www-data用户并没有在www/html下面写文件的权限,所以PHP在通过浏览器访问的时候是没有办法.

2020-05-14 10:18:37 208

原创 什么是BUG

先讲一个有关BUG来源的故事这个故事和一个美国的计算机科学家有关,先看一下她的图片故事的主角叫格蕾丝·霍珀(Grace Hopper),于1946年战争结束后从现役军役中退役,当时她加入哈佛大学计算实验室的工作。在这里,她继续在Mark II和Mark III计算机上工作。1947年9月9日,格蕾丝(Grace)在马克二世(Mark II)上发现了一个错误,错误的原因是被困在继电器中的一只死飞蛾。她仔细地除去了这只飞蛾,机器就正常工作了,后来她把昆虫并将其贴在日志上,并创造了计算机BU.

2020-05-13 09:49:42 165

原创 Windows version

Building Drivers for Different Versions of Windowshttps://docs.microsoft.com/en-us/windows-hardware/drivers/develop/building-drivers-for-different-versions-of-windowsClient OS Server OSWindo...

2020-04-22 21:20:04 111

原创 IRQL Level

PASSIVE_LEVELAPC_LEVELDISPATCH_LEVELPage fault in PASSIVE_LEVELAPI IRQLMemory APIsExAllocatePoolWithTag &...

2020-04-22 21:19:17 97

原创 算法2:判断两个字符串内容是否相同

详细描述判断两个字符串的内容是否相同,指的是两个字符串中的字符是否完全一样,顺序可以不同(也可以称之为换位字符串)。比如字符串1为”abc”,字符串2为”cba”,则认为这两个字符串内容是一样的,再比如字符串1为”aba”,字符串2为”abaa”,则认为两个字符串内容不同。因此,两个字符串内容相同包含的意思就是:两个字符串长度相同,并且字符串的字符完全一样(顺序可以不同)。分析在算法1中,...

2020-03-31 15:06:51 1431

原创 算法1:找出第一个非重复字符在字符串中的位置

详细描述对于一个字符串,为了简便起见,假设字符串的所有字符都是英文的。这个字符串的长度不定,可长可短,内容也不确定,可能有大写,可能也有小写,有重复的,比如这样一个字符串 ”this is a test book”,这个字符串里面有很多字符是重复的,比如t,i,o等,也有没有重复的字符,比如h,因此这个算法的目标就是找到h,然后返回1(位置从0开始)。再比如这个字符串 ”They are wor...

2020-03-31 15:02:41 202

原创 Android华容道之一步一步实现-8-开始游戏

开始游戏指的是开始打乱图片顺序。效果图如下:先说产生随机数,利用随机数产生一个[0-14]的整数,代码如下:private void init_num_arr() { for (int i = 0; i < 16; i++) { num_arr[i] = -1; } num_arr[15] ...

2019-04-19 08:03:25 398

原创 Android华容道之一步一步实现-7-重构代码

是时候做一点代码的重构了,毕竟已经是一个可运行的版本了,并且顺带做一点点美化的工作,先看效果图,重构和美化完之后的版本效果图。重构第一部分如果是数字版,不再使用带有数字的图片,而是使用动态创建数字图片的方式。并在图片上绘制数字,代码如下:private void draw_text(Bitmap bitmap, String text) { int...

2019-04-18 09:03:58 612

原创 Android华容道之一步一步实现-6-还原状态检测

再次说明一下,我们的华容道的最终版本是图像华容道,不是纯数字的华容道,难度当然要比纯数字版的华容道大多了,因为在玩的时候要记住整福图像以及被切分后,每一张小图片应该在什么位置,如果是一幅您不熟悉的图片的话,是很考察观察力和记忆力的。但是无论是图片版也好,数字版也好,我们实现的本质都是一样的。我们先说数字版的华容道怎么判断已经还原。还原状态也就是初始状态,1234,5678,9 10 1...

2019-04-17 09:11:12 186

原创 Android华容道之一步一步实现-5-图像块移动算法实现

首先祝贺一下,完成这一步,0.1版的图像华容道就实现了,就是能够自己可以自由玩耍了。不要着急一次成型,要使用Agile的思想,每天一次更新,但是每天都是可用的,一个可用的软件比别的都重要。优化啊,界面啊,性能啊,重构啊,别急,慢慢来。在上一篇文章中提到了具体的算法思想,这次就是具体的实现,主要就这个一个函数,根据手指触摸的位置来对所有的图像块进行重新排序,但是实际上每次最多三块图像的位...

2019-04-17 08:20:33 486

原创 Android华容道之一步一步实现-4-图像块移动算法

下一个关键点就是图像块的移动,以如图为例。假设空格处于第二行第三格,那么此时只有触摸第二行以及第三列的图像块的时候才需要移动图像块,因为别的图像块不能移动。当触摸发生在合法的图像块的时候,即上面图中的十字交叉黑线区域,则有四种情况出现,即移动图像块有四种可能,向上,向下,向左,向右。比如手指触摸在7号图像块,这7号图像块只能向左移动,别的图像块都不用移动。再比如手指触摸在...

2019-04-16 10:15:05 450

原创 Android华容道之一步一步实现-3 -手指触摸处理

华容道关键点之一出现了,就是处理触摸,包括手指按下,抬起,移动等。自己实现一个处理触摸的类,然后处理onTouchEvent(MotionEvent event)事件,在这里处理手指按下,抬起,移动事件。代码为:这里的效果是手指触摸一下,16块小图像依次交换package com.example.szhrd;import android.R.bool;im...

2019-04-16 09:45:36 537

原创 Android华容道之一步一步实现-2-图片分割

因为华容道是16个格子,所以要把一张大一点的图片分割成16个相等的小图片。可以使用Bitmap.createBitmap方法来进行。直接上代码ori_bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.koala);原始图片下面对原始图片进行切分,分为16张 ori_bitmap = ...

2019-04-15 21:36:30 831

原创 Android华容道之一步一步实现-序言

女儿看了最强大脑的数字华容道节目之后,就缠着要玩数字华容道,买了实物版,玩了几天,感觉好像还没有过瘾,就让我做个手机版的数字华容道游戏。说明一下,最终要实现的版本并不是最强大脑那种数字版的华容道,而是图像版的华容道,也就是说要比数字华容道的难度大多了,玩的时候不但要记住整福图像,而且要记住每一个小图像块的位置才能还原,不但需要很强的观察力,也需要很强的记忆力,因为这不是拼图游戏。虽然是久经...

2019-04-15 09:18:34 956

原创 Ubuntu迁移/boot卷

默认/boot卷总是不是太大,总是有很多理由需要/boot卷很大,说重点,如何在不重新装机的情况下迁移到另外一个空间很大的卷上。步骤:(亲测有效)假设有一个卷/dev/sdc1,并且空间足够1.拷贝/boot里面的所有东西到一个临时目录,比如叫/tmp/boot2.umount /boot3.mount /dev/sdc1 /boot4.拷贝/tmp/boot里面的所有文件...

2019-04-05 19:11:16 297

原创 Linux error number

errno.00 is: Successerrno.01 is: Operation not permittederrno.02 is: No such file or directoryerrno.03 is: No such processerrno.04 is: Interrupted system callerrno.05 is: Input/output errorerrno...

2019-01-08 14:16:08 494

原创 那些年,程序员读错的英语

         那些年,中国IT工程师读错的英语 Top 10  错误读音 正确读音 错误流行度 putty [ˈpuːti] [ˈpʌti] ★★★★★ ubuntu [juː'bʊntʊ] [ʊ'bʊntʊ] ★★★★★ git [dʒɪt] [ɡɪt] ★★★★★ height [h...

2018-11-09 17:28:17 71

原创 ubuntu如何升级?

just do it:do-release-upgrade

2018-11-09 16:07:42 373

原创 你知道你的程序到底能使用多少内存吗?

作为一个程序员,好像这个问题不用回答似的,如果是32位程序,最多能使用2G内存。如果是64位程序,那就多了去了。我们以32位程序作为说明对象。有时候,用C++写的一个程序,通过task manager来查看,自己的程序明明只有使用了几百M内存,为什么还会分配内存 失败呢?如下图所示:明明这个程序只使用了不到200M内存,但是实际这个程序到底占用了多少内存呢?请看下图...

2018-11-08 15:17:43 203

原创 数据备份,数据保护中的稳定点(in-consistent, crash-consistent, application-consistent)

什么是数据保护的稳定点?比如平时我们用copy命令或者在资源管理器中进行文件拷贝,如果拷贝的文件是正在变化修改的,那么我们拷贝出来的文件就是一个不稳定的状态,可以称之为in-consistent。为什么说是不稳定的呢?比如说我们要拷贝一个目录下的所有文件,假设这些文件都在被改变,那么我们用copy命令拷贝出来的这些文件的时间戳会是不一样的,copy命令只管拷贝。那么怎样才能做到一个稳定点呢...

2018-10-23 10:28:16 476

原创 如何统统扩充loop设备的size(linux loop resize2fs)

我们知道,在Linux系统中,可以使用一个文件作为一个磁盘,并且可以对这个文件进行格式化,mount等操作,就完全像一个真正的磁盘一样。下面来使用一个文件制作loop设备,并且mount起来,在其空间不够的时候在进行online扩展空间。步骤:1.创建一个文件,大小为2G。dd if=/dev/zero of=loop.dat bs=1M count=20482.对loop.d...

2018-10-06 16:55:27 1209

原创 git提交指定文件

如果修改了多个文件,但是只想提交其中部分文件如何提交呢?我们知道提交的时候一般常用两种方式,一是git commit -a这种方式提交的时候不需要执行git add操作,自动就把所有修改的文件提交了。另外一种方式就是git commit -m这种方式只会提交你用git add的文件,所以你想提交那些文件,就调用一下git add,然后git commit -m...

2018-09-28 09:53:16 32649 13

原创 NTSTATUS Values

By combining the NTSTATUS into a single 32-bit numbering space, the following NTSTATUS values are defined. Most values also have a defined default message that can be used to map the value to a human-...

2018-09-12 14:27:52 618

原创 NTSTATUS

Values are 32 bit and are laid out as follows. The following diagram is independent of endianness; that is, the diagram is shown in host byte order and merely shows the layout of the numbering space....

2018-09-12 14:26:20 559

原创 Linux dmesg显示可读时间方式

直接用dmesg显示系统信息,很难看[95721.670025] snapshot device recevied [read] io request, access on dev sector[272], length is [240] sectors.[95721.670363] device is closed[95721.693207] device is closed显示的时间...

2018-08-31 18:02:58 17347 1

原创 BIO bi_sector submit_bio make_request_fn

BIO结构中有一个很重要的字段叫做bi_sector,在高版本中这个字段已经叫bi_iter.bi_sector了,这个不是重点,重点是下面要说的。当读写一个block device的时候,会提交一个bio数据结构给make_request_fn,那么这个bio结构中的bi_sector到底表示什么意思呢?在bio.h中有这么一行注释sector_t        bi_sector;...

2018-08-31 10:54:43 835

空空如也

要是直播写代码,比如C,C++,会有人看吗?

发表于 2020-05-21 最后回复 2020-07-30

空空如也

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

TA关注的人 TA的粉丝

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