自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 类实例属性的设置与访问

Python 作为动态编程语言,可以在任意时刻为一个类实例设置属性,如果不加限制,则可以为一个实例属性设置任意类型的值。但有时我们可能希望对一个新的实例属性的值进行一些自定义的限制或更改,此时就可从 Python 的类定义层面进行考虑了。 其实细细追究下来,Python 中对一个类实例的属性就行访问和设置主要是跟下面 3 个特殊方法有关: 1、__getattr__(s...

2017-07-31 10:48:03 539

原创 流和缓冲

对于不带缓冲的 I/O 库而言,大多数操作都是围绕文件描述符展开的。当打开一个文件时,就返回一个文件描述符,然后该文件描述符就用于后续的 I/O 操作。而对于标准 I/O 库,其操作则是围绕流(stream)进行的。当用标准 I/O 库打开或创建一个文件时,就将一个流与该文件关联起来了。 标准 I/O 文件流可用于单字节或多字节(“宽”)字符集,这是由流的定向(stream's ...

2017-07-31 00:45:43 170

原创 TCP、UDP 和 SCTP 输出介绍

每个 TCP 套接字都有一个发送缓冲区,可以使用 SO_SNDBUF 套接字选项来更改该缓冲区的大小。下图展示了某个应用进程写数据到一个 TCP 套接字时发生的步骤。[img]http://dl2.iteye.com/upload/attachment/0126/2921/f7c36314-75ea-3bab-a25b-628fa9428913.png[/img] 当某个应用...

2017-07-28 22:32:53 294

原创 反向迭代器

要实现一个反向迭代器其实非常简单,只需实现 __reversed__ 这个特殊方法即可,它会被 python 内置的 reversed 函数所调用。反向迭代器在数据量很多时可以改善代码性能,因为它不需要把数据填充到一个列表中然后再去反向迭代该列表。 下面这个示例是对内置函数 range 的简单模拟:[code="python3"]class Countdown: de...

2017-07-27 16:09:37 158

原创 创建多主机网络

Docker 引擎可以利用 overlay 网络来创建一个跨主机的网络,不过在此之前需要 Docker 引擎以 swarm 模式运行或者拥有一个使用键值存储区的主机群。 swarm 模式可以使 overlay 网络只能被 swarm 中需要服务的节点所使用。当创建使用 overlay 网络的服务时,swarm 中的管理器节点就会自动扩展 overlay 网络到运行服务任务的节点上...

2017-07-27 08:16:00 187

原创 目录相关函数

用 mkdir 和 mkdirat 函数可以创建目录,用 rmdir 函数可以删除空目录。[code="C"]#include int mkdir(const char *pathname, mode_t mode);int mkdirat(int fd, const char *pathname, mode_t mode);#include int rmdir...

2017-07-25 22:51:40 183

原创 wget 命令详解(转载)

一篇不错的帖子,命令详见[url=http://blog.csdn.net/freeking101/article/details/53691481] linux wget 命令用法详解(附实例说明)[/url]。

2017-07-25 08:11:21 337

原创 SCTP的建立和终止以及状态转换图

与 TCP 一样,SCTP 也是面向连接的,因而也有关联的建立和终止的握手过程。 建立一个 SCTP 连接时发生的情形如下: 1、服务器必须准备好接受外来的连接。这通常通过调用 socket、bind 和 listen 这 3 个函数来完成,称为被动打开。 2、客户通过调用 connect 或者发送一个隐式打开该连接的消息进行主动打开。这使得客户 SCTP 发...

2017-07-24 22:46:42 1324

原创 makefile 文件基本规则

makefile 文件中包含了一组用来编译应用程序的规则。make 命令执行时所看到的第一项规则,会被作为默认规则使用。一项规则可分成三个部分:工作目标(target)、它的必要条件(prerequisite)以及所要执行的命令(commend)。[code="makefile"]# 注释:没指定必要条件时,只有在工作目标代表的文件不存在时才会进行更新。target1 [tar...

2017-07-24 20:54:31 283

原创 创建网络

要自定义网络,可以使用“docker network create”命令,默认创建的是 bridge 网络,该网络只能部署在一台主机上。我们也可以创建跨越多台主机的 overlay 网络,不过需要一些先决条件: 1、能访问键值存储区。Docker 支持 Consul、Etcd 和 ZooKeeper(分布式的)键值存储区。 2、能连接到键值存储区的主机群。 3...

2017-07-23 09:26:16 194

原创 TCP状态转换图

TCP 涉及连接建立和终止的操作可用如下的状态转换图来说明。[img]http://dl2.iteye.com/upload/attachment/0126/1456/b51915ca-778c-31c7-98de-e4decbf91711.png[/img] TCP 为一个连接定义了 11 种状态,这些状态可使用 netstat 显示,并且 TCP 规则规定如何基于当前状态...

2017-07-22 18:29:40 94

原创 文件时间属性

每个文件都有 3 个时间属性字段,它们的意义如下:[table]|字段|说明|例子|ls 选项||st_atim|文件数据的最后访问时间|read|-u||st_mtim|文件数据的最后修改时间|write|默认||st_ctim|i 节点状态的最后修改时间|chmod、chown|-c|[/table] 注意,系统并不维护对一个 i 节点的最后一次访问时...

2017-07-18 00:31:01 474

原创 容器网络

Docker 安装时,默认会创建三个网络,可使用“docker network ls”查看:[code="docker"]$ docker network lsNETWORK ID NAME DRIVER7fca4eb8c647 bridge bridge9f904ee27bf5 ...

2017-07-15 11:54:15 2303

原创 文件重命名和符号链接

文件或目录可以用 rename 函数或者 renameat 函数进行重命名。[code="C"]#include int rename(const char *oldname, const char *newname);int renameat(int oldfd, const char *oldname, int newfd, const char *newname)...

2017-07-14 00:20:22 814

原创 文件链接函数

根据[url=http://aisxyz.iteye.com/blog/2383957]文件系统基本结构[/url]中的介绍,任何一个文件都可以有多个目录项指向其 i 节点。创建一个指向现有文件的链接的方法是使用 link 函数或 linkat 函数(创建新目录项和增加链接计数是一个原子操作)。[code="C"]#include int link(const char *...

2017-07-12 23:56:24 213

原创 文件系统基本结构

一个磁盘可以分成多个分区,每个分区可以包含一个文件系统。下图展示了它们之间的关系:[img]http://dl2.iteye.com/upload/attachment/0126/0024/b762d592-9940-3c17-858b-3c57ac0a4e93.png[/img] 图中的 i 节点是固定长度的记录项,它包含有关文件的大部分信息。如果深入观察一个柱面组的 i ...

2017-07-11 00:28:04 374

原创 文件长度

与文件结构关系十分密切的 stat 结构中有个 st_size 成员,它表示以字节为单位的文件的长度,但这个字段只对普通文件、目录文件和符号链接有意义(FreeBSD 8.0、Mac OS X 10.6.8 和 Solaris 10 对管道也定义了文件长度,表示可从该管道中读到的字节数)。 对于普通文件,其长度可以是 0,在开始读这种文件时,将得到文件结束指示。 对于目...

2017-07-10 07:06:53 1209

原创 git 基础命令速记

本文所有命令都是摘自《Git》,详细在线内容见[url]https://git-scm.com/book/zh/v2[/url].git config # 查看或配置gitgit init # 初始化仓库git status # 查看仓库状态git add file1 ......

2017-07-09 16:57:09 140

原创 文件权限 ID 修改函数介绍

在前面“[url=http://aisxyz.iteye.com/admin/blogs/2381550l]设置用户 ID 和设置组 ID[/url]”一节中,我们介绍了与每个文件相关的 9 个访问权限位,在此基础上我们可以说明与每个进程相关联的文件模式创建屏蔽字。 umask 函数为进程设置文件模式创建屏蔽字,并返回之前的值。[code="C"]#include ...

2017-07-06 00:17:42 352

原创 fiddler QuickExec 选择命令

用过 fiddler 抓包的人都知道在 Web 回话窗口下有一个 QuickExec 窗口,它可以根据指定的搜索条件快速选择感兴趣的数据流。 QuickExec 支持的选择命令如下表:[img]http://dl2.iteye.com/upload/attachment/0125/8879/839d516c-630d-30df-a1d2-c00fe845e27e.png[/i...

2017-07-04 11:55:27 217

原创 access 和 faccessat 函数

通常,当打开一个文件时,内核是以进程的有效用户 ID 和有效组 ID 为基础执行其访问权限测试。不过,有时进程也希望按其实际用户 ID 和实际组 ID 来测试其访问能力。例如,当一个进程使用设置用户 ID 或设置组 ID 功能作为另一个用户(或组)运行时,就可能会有这种需要。即使一个进程可能已经通过设置用户 ID 以超级用户权限运行,它仍然可能想验证其实际用户能否访问一个给定的文件。acc...

2017-07-02 00:27:06 2921

原创 终端I/O函数 ioctl

ioctl 函数一直是 I/O 操作的杂物箱,不能用其它 I/O 函数进行的操作通常都能使用它表示。终端 I/O 就是使用 ioctl 函数最多的地方,可以用它来获取和设置终端窗口的大小等(POSIX.1 已经用一些单独的函数代替了终端 I/O 操作)。[code="C"]#include /* System V */#include /* BSD a...

2017-07-01 22:58:41 352

原创 基本设备类型简介

Linux 将设备分成三种基本类型,分别概述如下: 1、字符设备 字符设备是个能像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少要实现 open、close、read 和 write 系统调用。字符终端(/dev/console)和串口(/dev/tty0以及类似设备)就是两个字符设备,它们能很好地说明“流”这种抽象概念。...

2017-07-01 22:23:11 1370

原创 UNIX 内核功能

UNIX 系统支持多个进程的并发运行,每个进程都请求系统资源,比如运算、内存、网络连接或其他一些资源等。内核负责处理所有这些请求,根据内核完成任务的不同(这些任务之间的区别可能不总是那么清楚),可将内核功能划分如下表所示:[img]http://dl2.iteye.com/upload/attachment/0125/8415/1330d38e-136c-3fb5-ae99-ed314...

2017-07-01 21:06:05 380

空空如也

空空如也

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

TA关注的人

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