自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (8)
  • 收藏
  • 关注

原创 Linux下的网络编程看这篇就够了

1.全球IP因特网1.1数据在互联网上的传输过程1.2 一个网络程序的软硬件组织1.3 IP地址结构一个IP地址就是一个无符号32位整数。网络程序将其存放在如下所示结构体中:struct in_addr{ uint32_t s_addr; //大端法表示的IP地址};因为网络字节序都是大端法表示的,所以Unix提供了一组函数用于在网络和主机间进行字节序的转换:#...

2020-03-26 11:28:31 55

原创 Linux中的信号机制
原力计划

信号就是一条消息,通知进程系统中发生了什么事,每种信号都对应着某种系统事件。一般的底层硬件异常是由内核的异常处理程序处理的,它对用户进程来说是透明的。而信号机制,提供了一种方法通知用户进程发生了这些异常。例如,一个进程试图除0,会引发内核向他发送SIGFPE信号;执行非法指令会引发SIGILL信号;非法内存访问引发SIGSEGV;当你从键盘上键入Ctrl + C会引发SIGINT;当某个子进程结...

2020-03-21 23:38:00 108

翻译 一文学会GDB操作命令

GDB快速指南版本 2 (2009 6月 14)原文这是一个非常快速的GDB指南,旨在让你开始在终端的命令行下熟练使用GNU调试器gdb。更多详细信息,查看官方GDB 文档!此外,一个好的GNU GDB前端是数据显示调试器DDD。编译您必须告诉编译器使用包含符号调试的信息来编译代码。下面介绍如何使用gcc,使用**-g**开关:$ gcc -g hello.c -o hello ...

2020-03-27 15:42:42 103

原创 详解高速缓存存储器的3种映射方式

开始的计算机系统中存储器层次包括CPU寄存器、主存(DRAM)和硬盘,后来为了缓解寄存器与主存间速度的差异,系统设计者在它们之间增加了高速缓存(SRAM),它的访问速度几乎可以和寄存器一样快。随着CPU和主存的性能差距逐渐拉大,后来在原高速缓存(L1高速缓存)和内存之间有增加了L2和L3级高速缓存。一般访问寄存器需要1个时钟周期,访问L1级高速缓存需要4个时钟周期,访问L2级高速缓存需要10个...

2020-03-25 13:42:50 1044 1

原创 C程序中如何读取目录中的文件并判断文件大小等信息

读取目录内容应用程序可以用readdir系列函数来读取目录内容。#include <sys/types.h>#include <dirent.h>DIR *opendir(const char *name); //成功返回目录指针,失败返回NULLstruct dirent *readdir(DIR *dirp); //成功返回目录项指针,已读完或失败返回NU...

2020-03-24 17:37:12 91

原创 各种I/O函数的选用原则

应用程序可以通过诸如open、close、lseek、read、write和stat这样的函数来访问文件或I/O设备。更高级别的还有标准I/O及RIO( CS:AP网站参考代码 ,为了修补read等系统IO函数的不足而撰写的健壮的包装函数,它们自动处理不足值,为读文本行提供一种高效的带缓冲的方法。)在实际编程中如何选用这些函数呢?下面提供一些基本原则:只要又可能就使用标准I/O。特别是对磁...

2020-03-24 16:24:50 59

原创 C程序中常见与内存错误有关的坑
原力计划

间接引用坏指针在进程的虚拟地址空间中有很多区域是还没有映射的,如果试图向这些地址进行写或读,可能会引发保护异常或段错误。一个最典型的例子:假设我们使用scanf函数从键盘输入一个值给变量val。正确的写法是:scanf("%d", &val);然而,我们很多初级开发者容易错写成:scanf("%d", val);此时,编译器将val值错误的解释成一个地址值,并试图向这个地...

2020-03-23 16:34:34 41

原创 非本地跳转函数setjmp和longjmp
原力计划

C语言提供了一种用户级的异常控制流形式,称为非本地跳转(nonlocal jump),它可以将控制流直接从一个函数转移到另一个当前正在执行的函数,而不需要经过正常的调用和返回序列。而这些都是通过两组函数实现的。setjmp函数首先来看看函数原型:#include <setjmp.h>int setjmp(jmp_buf env); //返回0int sigsetj...

2020-03-22 23:11:01 54

原创 设置Source Insight默认工作目录

有时候source insight安装好之后,打开source insight软件会出现如下图的错误:图片发自简书App这是由于source insight的默认工程目录含有中文路径,导致打不开软件,此时我们可以通过修改注册表来重新指定默认的工程路径来解决这个问题。具体方法如下:首先,Win+R输入regedit打开注册表,定位注册表项:HKEY_CURRENT...

2020-03-22 11:33:27 226

原创 Ubuntu 下 /etc/resolv.conf文件总是自动清除问题的解决方案

虚拟机用了几天发现Ubuntu无法上网,打开命令终端,输入命令: ~~~ ping www.baidu.com ~~~ 结果显示名称无法识别,而直接与宿主机之间使用 IP 地址进行互ping,则可以ping得通。这说明是DNS服务出现了问题。 于是,修改/etd/resolv.conf文件,在这句话: ...

2020-03-22 11:30:42 721

原创 一文教你如何构建自己的函数库

话说ISOC99有自己的一系列标准C函数库,例如我们熟悉的libc.a(包含标准I/O函数、字符串操作函数和整数数学函数)和libm.a(浮点数数学函数),可供我们在使用gcc编译工具编译程序时调用。那么,如果我们在日常学习或项目开发中积累了许多好的函数,希望日后在其他项目中能够复用时,我们又该如何去保存他们呢?今天我就告诉大家怎么办?1. 看gcc编译器都干了些什么?所谓,知...

2020-03-22 11:28:20 472

原创 计算机底层中的IEEE浮点数表示

IEEE标准中浮点数用形如V = (-1)s x M x 2E的格式表示一个小数:s☞符号位,s=1代表负数,s=0代表正数。M☞尾数,代表小数点之后的数。E☞阶数,对刚才的小数进行加权,权重是2的E次幂。位表示所以整个浮点数的二进制表示形式由3个部分组成:1位的符号段(s)+ k位的阶码段 + n位的小数字段。说明:在32位单精度表示中,k=8, n=23;在64位双精度表示中,k=...

2020-03-19 19:56:05 122

原创 FileZilla正确连接虚拟机方法

1.查看ssh服务的状态输入命令:sudo service sshd status如果出现Loaded: error (Reason: No such file or directory)提示的话,说名没有安装ssh服务,按照第二步:安装ssh服务。如果出现Active: inactive (dead)说明已经安装了ssh服务,但是没有开启。按照第三步:开启ssh服务。2.安装...

2020-03-19 19:43:26 2100

原创 论程序优化一般考虑的几个方向
原力计划

写程序最主要的目标是使它在任何情况下都能正确工作,但在很多情况下,让程序运行的快也是一个重要的因素。编写高效程序要做到一下几点:必须选择一组适当的数据结合和算法;编写出编译器能有效优化的源代码;编写适合不同处理器架构和性能的代码。当然,有人可能会说,优化代码可以依靠编译工具(如GCC)的优化选项,为什么还需要我们自己亲自干呢?有这种疑问的请继续阅读,没有疑问的可以跳过第0节。0. 为...

2020-03-19 19:40:10 223

原创 一文搞懂linux的库打桩
原力计划

Linux下的链接器支持一个强大的库打桩(library interpositioning),允许你拦截对系统标准库中某个目标函数的调用,取而代之执行自己的包装函数。它可以给我们带来两个好处,一是通过添加某些语句,可以追踪自己的程序对某些库函数的调用情况;二是可以在你自己的程序中,对某些库函数偷天换日,替换成一个完全不同的实现。打桩可以发生在编译,链接和运行的任意一个阶段,相应的代码编写和编译也...

2020-03-19 19:33:48 472

原创 一文教你如何构建动态链接库

话说前一篇文章一文教你如何构建静态链接库向大家介绍了如何构建静态库,虽然解决了我们的一大麻烦,但静态库在使用中任然存在一些缺点。软件更新麻烦:假如你对之前库里的某个函数功能有了更好的实现方法,想在某个之前已经使用了该函数的项目中使用新版本的库函数,这时你不得不重新编译一遍。如果项目规模小还可以,但如果项目规模很大,编译起来需要几个小时呢?几乎你的每个程序都大量使用了标准I/O函数(print...

2020-03-19 19:11:42 191

原创 一文教你如何构建静态链接库

话说ISOC99有自己的一系列标准C函数库,例如我们熟悉的libc.a(包含标准I/O函数、字符串操作函数和整数数学函数)和libm.a(浮点数数学函数),可供我们在使用gcc编译工具编译程序时调用。那么,如果我们在日常学习或项目开发中积累了许多好的函数,希望日后在其他项目中能够复用时,我们又该如何去保存他们呢?今天我就告诉大家怎么办?1. 看gcc编译器都干了些什么?所谓,知己知彼,百战不殆...

2020-03-19 18:56:58 183

原创 IEEE浮点数表示

IEEE标准中浮点数用形如V=(-1)^s x M x 2^E的格式表示一个小数:s☞符号位,s=1代表负数,s=0代表正数。M☞尾数,代表小数点之后的数。E☞阶数,对刚才的小数进行加权,权重是2的E次幂。位表示所以整个浮点数的二进制表示形式由3个部分组成:1位的符号段(s)+ k位的阶码段 + n位的小数字段。说明:在32位单精度表示中,k=8, n=23;在64位双...

2020-03-12 15:55:10 64

一个实用高频基本电路集

对于学习高、射频的人来说非常有用哦,资源包含了许多通用和常见的基本高频电路设计单元和模块,特别适合初学者。

2010-11-17

操作系统知识.pdf

计算机软件能力和技术测试考试中的操作系统知识,软考高级中系统分析师和架构师的必备知识点,需要的同学赶紧下载吧!!!!

2020-08-12

自写嵌入式系统设计师考试笔记.doc

我是去年考过的计算机技术与软件专业技术资格(水平)考试中的中级嵌入式系统设计师,成绩也不错,这是我看书,培训中总结的笔记,很重要,现在供大家下载。

2020-07-28

历年真题06-11.zip

计算机技术与软件专业技术资格(水平)考试2006年至2011年的下午考题,有需要的同学可以下载下来看看。做真题真的很重要的,重要的事情说3遍:做真题真的很重要的。做真题真的很重要的。做真题真的很重要的!

2020-07-28

历年真题12-18.zip

计算机技术与软件专业技术资格(水平)考试2012年至2018年的下午考题,有需要的同学可以下载下来看看。做真题真的很重要的,重要的事情说3遍:做真题真的很重要的。做真题真的很重要的。做真题真的很重要的!

2020-07-28

RIO包-用于网络编程的健壮读写函数.md

它会自动处理你上下文中所述的不足值,提供了方便/健壮和高效的IO。 本代码分别提供了无缓冲和带缓冲的输入输出函数: 无缓冲:rio_readn和rio_writen 带缓冲:rio_readinitb、rio_readlineb、rio_readnb

2020-03-26

picgo_typora.zip

内含2个安装包,一个是Picgo-2.2.0 一个是typora。二者加起来可以方便的在利用typora编写markdown语法的文章时插入图片,便于多平台传递、查看markdown文章。

2020-03-25

一文教你如何构建静态链接库.md

主要描述如何构建自己的静态库。话说ISOC99有自己的一系列标准C函数库,例如我们熟悉的libc.a(包含标准I/O函数、字符串操作函数和整数数学函数)和libm.a(浮点数数学函数),可供我们在使用gcc编译工具编译程序时调用。那么,如果我们在日常学习或项目开发中积累了许多好的函数,希望日后在其他项目中能够复用时,我们又该如何去保存他们呢?今天我就告诉大家怎么办?

2020-03-19

空空如也

空空如也

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

TA关注的人 TA的粉丝

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