- 博客(18)
- 资源 (24)
- 收藏
- 关注
原创 Linux下的网络编程看这篇就够了
【摘要】本文主要讲述了网络编程的基本概念,包括各种协议、地址、套接字等,重点叙述了套接字的地址结构、操作函数及其编程方法和示例。
2020-03-26 11:28:31 692
原创 Linux中的信号处理机制
信号就是一条消息,通知进程系统中发生了什么事,每种信号都对应着某种系统事件。一般的底层硬件异常是由内核的异常处理程序处理的,它对用户进程来说是透明的。而信号机制,提供了一种方法通知用户进程发生了这些异常。例如,一个进程试图除0,会引发内核向他发送SIGFPE信号;执行非法指令会引发SIGILL信号;非法内存访问引发SIGSEGV;当你从键盘上键入Ctrl + C会引发SIGINT;当某个子进程结...
2020-03-21 23:38:00 696
翻译 一文学会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 1302
原创 详解高速缓存存储器的3种映射方式
开始的计算机系统中存储器层次包括CPU寄存器、主存(DRAM)和硬盘,后来为了缓解寄存器与主存间速度的差异,系统设计者在它们之间增加了高速缓存(SRAM),它的访问速度几乎可以和寄存器一样快。随着CPU和主存的性能差距逐渐拉大,后来在原高速缓存(L1高速缓存)和内存之间有增加了L2和L3级高速缓存。一般访问寄存器需要1个时钟周期,访问L1级高速缓存需要4个时钟周期,访问L2级高速缓存需要10个...
2020-03-25 13:42:50 5057 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 408
原创 各种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 284
原创 详解九类内存错误
间接引用坏指针在进程的虚拟地址空间中有很多区域是还没有映射的,如果试图向这些地址进行写或读,可能会引发保护异常或段错误。一个最典型的例子:假设我们使用scanf函数从键盘输入一个值给变量val。正确的写法是:scanf("%d", &val);然而,我们很多初级开发者容易错写成:scanf("%d", val);此时,编译器将val值错误的解释成一个地址值,并试图向这个地...
2020-03-23 16:34:34 320
原创 非本地跳转函数setjmp和longjmp
C语言提供了一种用户级的异常控制流形式,称为非本地跳转(nonlocal jump),它可以将控制流直接从一个函数转移到另一个当前正在执行的函数,而不需要经过正常的调用和返回序列。而这些都是通过两组函数实现的。setjmp函数首先来看看函数原型:#include <setjmp.h>int setjmp(jmp_buf env); //返回0int sigsetj...
2020-03-22 23:11:01 428
原创 设置Source Insight默认工作目录
有时候source insight安装好之后,打开source insight软件会出现如下图的错误:图片发自简书App这是由于source insight的默认工程目录含有中文路径,导致打不开软件,此时我们可以通过修改注册表来重新指定默认的工程路径来解决这个问题。具体方法如下:首先,Win+R输入regedit打开注册表,定位注册表项:HKEY_CURRENT...
2020-03-22 11:33:27 1292
原创 Ubuntu 下 /etc/resolv.conf文件总是自动清除问题的解决方案
虚拟机用了几天发现Ubuntu无法上网,打开命令终端,输入命令: ~~~ ping www.baidu.com ~~~ 结果显示名称无法识别,而直接与宿主机之间使用 IP 地址进行互ping,则可以ping得通。这说明是DNS服务出现了问题。 于是,修改/etd/resolv.conf文件,在这句话: ...
2020-03-22 11:30:42 2528
原创 一文教你如何构建自己的函数库
话说ISOC99有自己的一系列标准C函数库,例如我们熟悉的libc.a(包含标准I/O函数、字符串操作函数和整数数学函数)和libm.a(浮点数数学函数),可供我们在使用gcc编译工具编译程序时调用。那么,如果我们在日常学习或项目开发中积累了许多好的函数,希望日后在其他项目中能够复用时,我们又该如何去保存他们呢?今天我就告诉大家怎么办?1. 看gcc编译器都干了些什么?所谓,知...
2020-03-22 11:28:20 3165
原创 计算机底层中的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 702
原创 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 18174 9
原创 论程序优化一般考虑的几个方向
写程序最主要的目标是使它在任何情况下都能正确工作,但在很多情况下,让程序运行的快也是一个重要的因素。编写高效程序要做到一下几点:必须选择一组适当的数据结合和算法;编写出编译器能有效优化的源代码;编写适合不同处理器架构和性能的代码。当然,有人可能会说,优化代码可以依靠编译工具(如GCC)的优化选项,为什么还需要我们自己亲自干呢?有这种疑问的请继续阅读,没有疑问的可以跳过第0节。0. 为...
2020-03-19 19:40:10 1568
原创 一文搞懂linux的库打桩
Linux下的链接器支持一个强大的库打桩(library interpositioning),允许你拦截对系统标准库中某个目标函数的调用,取而代之执行自己的包装函数。它可以给我们带来两个好处,一是通过添加某些语句,可以追踪自己的程序对某些库函数的调用情况;二是可以在你自己的程序中,对某些库函数偷天换日,替换成一个完全不同的实现。打桩可以发生在编译,链接和运行的任意一个阶段,相应的代码编写和编译也...
2020-03-19 19:33:48 2357 6
原创 一文教你如何构建动态链接库
话说前一篇文章一文教你如何构建静态链接库向大家介绍了如何构建静态库,虽然解决了我们的一大麻烦,但静态库在使用中任然存在一些缺点。软件更新麻烦:假如你对之前库里的某个函数功能有了更好的实现方法,想在某个之前已经使用了该函数的项目中使用新版本的库函数,这时你不得不重新编译一遍。如果项目规模小还可以,但如果项目规模很大,编译起来需要几个小时呢?几乎你的每个程序都大量使用了标准I/O函数(print...
2020-03-19 19:11:42 1208
原创 一文教你如何构建静态链接库
话说ISOC99有自己的一系列标准C函数库,例如我们熟悉的libc.a(包含标准I/O函数、字符串操作函数和整数数学函数)和libm.a(浮点数数学函数),可供我们在使用gcc编译工具编译程序时调用。那么,如果我们在日常学习或项目开发中积累了许多好的函数,希望日后在其他项目中能够复用时,我们又该如何去保存他们呢?今天我就告诉大家怎么办?1. 看gcc编译器都干了些什么?所谓,知己知彼,百战不殆...
2020-03-19 18:56:58 944
原创 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 1886
该程序能求解n皇后问题,即在n*n方格棋盘上放置n个皇后,要求每个皇后不同行、不同列、不同左右对角线
2023-02-09
信息系统项目管理师考试论文范文集
2022-03-04
软考高项考前必须要会做的百题精讲
2022-03-04
网络规划设计师历年真题09-19年.zip
2021-08-02
一百篇架构师论文范例(备考必备,备考必背!).rar
2021-08-02
2021年系统架构复习笔记(按章节).docx
2021-03-18
系统分析师核心考点归纳.pdf
2021-03-18
软考学习笔记(重要).docx
2021-03-18
自写嵌入式系统设计师考试笔记.doc
2020-07-28
历年真题12-18.zip
2020-07-28
RIO包-用于网络编程的健壮读写函数.md
2020-03-26
picgo_typora.zip
2020-03-25
一文教你如何构建静态链接库.md
2020-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人