自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Bluce的博客

消遣时光

  • 博客(36)
  • 问答 (1)
  • 收藏
  • 关注

原创 ACE通信设计空间指导

通信是网络应用程序设计的基础。本章就通信设计空间做了领域分析,介绍了网络应用程序之间互相作用的规则、形式和抽象层次。

2023-08-30 14:08:02 226

原创 【无标题】

在unix的文件I/O API上建立了很多的IPC API模型,这些API 定义了open()、read()、wirte()、close()、ioctl()、lseek() 和select()等函数。然而,由于在语法和语义上,文件I/O和网络I/O之间存在很多差别,因此网络API提供的标准UNIX文件I/O API不能直接支持额外功能。比如,在unix系统中用来标识文件的路径名,在不同种类的分布式环境下的多个主机上并不是全局唯一的。

2023-08-28 21:57:09 86

原创 ACE 服务和配置设计维度

参考链接。

2023-08-28 17:23:30 136

原创 【文件系统】

文件系统

2023-08-22 17:48:47 133

翻译 Valgrind Memcheck

Valgrind Memchck 的简单使用

2023-08-04 15:48:43 105

原创 【安全目标】

大多数人谈及安全时,就好像安全时协议的一项独立的整体特性,其实并非如此

2022-12-03 02:38:58 690 2

原创 【类模板】

与函数模板相似,类也可以被一种或多种类型参数化。

2022-11-30 10:58:58 437

原创 【函数模板】

函数模板是那些被参数化的函数,它们代表的是一个函数家族

2022-11-29 11:17:48 479 1

原创 Windows 进程之四 CreateProcess函数

Windows 进程之四 CreateProcess函数一、CreateProcess 函数1.1、pszImageName 和pszCmdLine 参数一、CreateProcess 函数这几天被微软的sfc.exe 这个工具整蒙了,用匿名管道和进程来重定向sfc.exe 没有任何输出,最后实在老同学的帮助下解决了这个问题。本篇只是对《Windows核心编程》的学习,加深印象。本篇共有7个小节,从CreateProcess定义开始:BOOL CreateProcess( LPCWSTR psz

2021-03-31 01:32:17 4014

原创 一次奇怪的git之旅

我在github上 NEW 了一个代码仓,想着传一些文件到这个仓库中,在本地执行下面命令发现如下错误:root@SSS:/mnt/c/Users/libeioCPlus# git clone [email protected]:Huoke/libeio.git .Cloning into '.'[email protected]: Permission denied (publickey).fa...

2019-04-25 11:58:59 166

转载 GNU C 对标准C语言的扩展(转载 懵懵懂懂)

GNU C 对标准C语言的扩展为了方便使用,GNU C在标准C语言的基础上进行了部分方便开发的扩展。这里讲解一些开发中可能会用到的,或者使用频率比较高的内容。1 零长度数组和变量长度数组GNU C 允许使用零长度数组:char data[0];GNU C 允许使用一个变量定义数组的长度:int n = 0;scanf("%d",&n);int array[n];2 c...

2019-04-13 00:32:02 2271

原创 供编译器进行分支预测,是的编译器对代码进行优化,减少指令跳转代

GCC提供内建函数之 __builtin_expect分支预测,目的是将“分支转移”的信息提供给编译器,这样编译器可以对代码进行优化,以减少指令跳转带来的性能下降。这个指令是gcc引入的,作用是允许程序员将最有可能执行的分支告诉编译器。这个指令的写法为:__builtin_expect(EXP, N)。意思是:EXP==N 的概率很大。一般的使用方法是将 __builtin_expec...

2019-04-05 00:57:41 913

原创 Linux下 prctl 进程控制

Linux 下 prctl 进程控制Linux下可通过 prctl进行进程各种控制 #include <sys/prctl.h> int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long a...

2019-04-04 18:48:18 3279

原创 信号章——函数 abort (未完善)

函数 abort、exit、_exit、_Exit 区别abort 函数abort 函数的功能是使程序异常终止。#include <stdlib.h>void abort(void);// 此函数不返回值。abort 函数将发送 SIGABRT 信号给调用进程, 前提是进程没有忽略此信号,而且 POSIX.1说明 abort 并不在意进程对这个信号阻塞还是忽略。ISO C...

2019-04-04 01:16:01 563

翻译 使用“#define _GNU_SOURCE” 是什么意思?

使用“#define _GNU_SOURCE” 是什么意思?今天我必须要使用 basename 函数,使用man手册查询了一下这个函数 man 3 basename 发现一个奇怪的信息名称basename,dirname-分析路径名组件简介#include <libgen.h>char *dirname(char *path);char *basename(char *p...

2019-04-01 23:44:07 9796

原创 Unix 标准及实现

Unix 标准及实现1.1 前言人们在 Unix 编程环境和 C 程序设计语言的标准化方面已经做了很多努力工作。在20世纪80年代 Unix 版本种类快速增加,随之而来的是它们之间的差别扩大,为了使不同种类的 Unix 系统之间应有程序可以顺利移植,人们开始呼吁进行Unix标准化。1.2 Unix1.2.1 ISO CISO 是国际标准化组织,它下属许多行业,IEC 是旗下国际电子标准...

2019-03-30 00:10:55 300

原创 autoreconf工具

autoreconf

2019-03-22 19:28:05 6454 2

原创 线程二(线程同步之条件变量)

线程同步

2019-03-08 21:12:39 184

原创 线程 一

怎么在单个进程中执行多个任务。一个进程中的所有线程都可以访问该进程的组成部件,例如文件描述符和内存。不管在什么情况下,只要单个资源需要在多个用户间共享,就必须处理一致性问题。我们将在之后的笔记中目前可用的同步机制,防止多个线程在共享资源时出现不一致问题。线程的概念典型的unix进程可以看成只有一个控制线程,即一个进程在某一时刻只能做一件事情。有了多个控制线程以后,在程序设计时就可以把进程设计...

2019-03-03 19:50:01 144

原创 进程环境 三

共享库 即.os库共享库可以使我们的可执行程序文件不需要包含公用的库函数,而只需要在所有进程都可引用的存储区中保存这个库的一个实例副本即可。程序第一次调用库函数时,使用动态链接的方法将程序与共享库函数相连接。这减少了可执行程序的长度,但是增加了运行时间开销。这就是用时间换空间的方法。这种时间开销发生在该程序第一次被调用时。共享库的另一个优点是可以用库函数的新版本替代老版本而无需对使用该库的...

2019-03-02 12:48:02 99

原创 进程环境 二

C程序的存储空间布局c程序由如下几个部分组成:正文段:这是由CPU执行的机器指令部分。通常,正文段是可共享的,所以即使是频繁执行的程序(如文本编辑器、C编译器和shell等)在存储器中也只需有一个副本,另外,正文段常常是只读的,以防止程序由于意外而修改其自身的指令。初始化数据段:(所有带有初始值的全局变量)通常将此段称为数据段,它包含了程序中需明确地赋初值的变量。例如,C程序中出现在任何函...

2019-03-02 00:36:47 326

原创 进程环境 一

main函数我们先分析一下当一个C程序开始执行时,main函数是如何被调用的。C程序总是从main函数开始执行,java、C++、C#等这些类C语言的程序也是。(这里是我的猜测,以后需要求证)main函数的原型:int main (int argc, char* argv[]);其中,argc是命令行参数的数目,argv是指向命令行参数的指针所组成的数组。当内核执行C程序时(其实使用一个...

2019-03-01 19:31:19 193

原创 数据结构之离散事件模拟

离散事件模拟

2019-02-10 21:57:53 668

原创 文件I/O

文件I/O之函数lseek每个打开的文件都有一个与其关联的“当前文件偏移量”,它通常是一个非负整数,用以度量从文件开始处计算的字节数。通常,读、写操作都从当前文件偏移量处开始,并使偏移量增加读写的字节数。按系统默认的情况,当打开一个文件时,除非指定O_APPEND选项,否则该偏移量被设置为0。可以调用lseek显式地为一个打开文件设置偏移量。#include&amp;amp;lt;unistd.h&amp;amp;gt...

2019-01-06 18:17:17 226 2

原创 命令行标志库Gflags

介绍,并与其他命令行标志库进行比较命令行参数是用户运行可执行文件时在命令行上指定的标志。在命令行中fgrep -l -f /var/tmp/foo johannes brahms -l和-f就是命令行参数,通常用户传入给应用程序的参数,或者接收到的参数,在这个例子中,-l没有接收参数,-f接收了一个字符串参数。用户可以用库来解析命令行,并且把参数保存到数据结构中。Gflags是google内...

2018-11-05 22:18:06 461

原创 在头文件中 ,inline 函数的定义前加static的目的是什么?

先看一下头文件中定义的一段static 的inline 代码static inline long get_micros(){ struct timeval tv; gettimeofday(&amp;amp;amp;tv, NULL); return static_cast&amp;amp;lt;long&amp;amp;gt;(tv.tv_sec) * 1000000 + tv.tv_usec;}为什么要在头...

2018-10-22 02:33:34 4261

原创 std::function的使用

std::function的使用我们知道在C++,可调用的实体主要包括 函数、函数指针、可以隐式转换为函数指针的对象、或者实现了 operator()的对象(即C++98中的functor)。在C++0x中,新增加了一个 std::function 对象是对C++中现有的可调用实体的一种类型安全的包裹(我们知道像函数指针这类可调用实体,是类型不安全的)。template &lt;...

2018-10-21 14:03:44 1156

转载 使用 Git 管理源代码

使用 Git 管理源代码工具集在 Linux 上提供了可靠的版本控制功能 ...

2018-04-19 00:46:57 127

转载 深入浅出UML类图

深入浅出UML类图  在UML 2.0的13种图形中,类图是使用频率最高的UML图之一。Martin Fowler在其著作《UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition》(《UML精粹:标准对象建模语言简明指南(第3版)》)中有这么一段:“If someone were to...

2018-04-18 03:04:30 115

转载 Linux VFS

Linux 有着极其丰富的文件系统,大体上可分如下几类:网络文件系统,如 nfs、cifs 等;磁盘文件系统,如 ext4、ext3 等;特殊文件系统,如 proc、sysfs、ramfs、tmpfs 等。实现以上这些文件系统并在 Linux 下共存的基础就是 Linux VFS(Virtual File System 又称 Virtual Filesystem Switch),即虚拟文件系统。V...

2018-04-18 03:01:27 1439

转载 linux 中软链接和硬链接

现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用。在 UNIX 系统中,操作系统为磁盘上的文本与图像、鼠标与键盘等输入设备及网络交互等 I/O 操作设计了一组通用 API,使他们被处理时均可统一使用字节流方式。换言之,UNIX 系统中除进程之外的一切皆是文件,而 Linux 保持了这一特性。为了便于文件的管理,Linux 还引入了目录(...

2018-04-18 03:00:06 262

转载 iptables 看门狗

 近来业内很多服务器因redis造成服务器被黑,这个攻击的防范重点在于防火墙!!   有时为了方便我们可能会将iptables临时关闭,方便完倘若忘记把它打开,黑客大摇大摆就走进来。   这时候,我们需要条看门狗来帮我们:如果门开了而且家里还没人在家,看门狗自己帮主人把门关上:#!/bin/sh/sbin/service iptables status &gt;/dev/null 2&gt;&...

2018-02-23 22:51:41 138

翻译 多个库的链接

          C++标准允许每个编译器设计人员以他认为合适的方式实现名称修饰, 因此由不同编译器创建的二进制模块(对象代码文件)很可能无法正确地链接。也就是说两个编译器将为同一个函数生成不同的修饰名称。名称的不同将使编译器无法将一个编译器生成的函数调用同另一个编译器生成的函数定义匹配。在链接编译器模块时,请确保所有对象文件或库都是由同一个编译器生成的。如果有源代码,通常可以用自己的编译器重新...

2018-02-21 10:23:59 328

转载 转载杨玉庆内联函数

1.  内联函数在C++中我们通常定义以下函数来求两个整数的最大值:复制代码 代码如下:int max(int a, int b){ return a &gt; b ? a : b;}为这么一个小的操作定义一个函数的好处有:① 阅读和理解函数 max 的调用,要比读一条等价的条件表达式并解释它的含义要容易得多② 如果需要做任何修改,修改函数要比找出并修改每一处等价表...

2018-02-20 23:08:08 144

转载 深入浅出UML类图

复制网上高人整理的文章,作为平日学习工作只用可以查找。

2017-11-06 00:59:11 221

原创 C++定义类时,为什么不能在类中声明自身类型的成员变量?

类声明: class dog; //类的声明类定义: class dog{ //类的定义}; 当用实例化一个类的对象时,编译器会根据类的定义来分配相应的存储空间 。也就是说,在创建对象前,一定要有完整的类定义,这样编译器才能正确的计算所需空间。 那么我们来看如下代码:class dog{ dog tt; //error, ‘tt’ uses undefi

2017-10-25 22:56:22 2556

空空如也

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

TA关注的人

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