这一文来讲解一下Github Pull Request(以下简称PR)的使用方法: 作为PR的提出者,如何对某个仓库提交PR,如何根据仓库管理者对所提交PR的反馈对PR进行完善 作为PR的接收者,如何对PR进行测试,对提出者进行反馈以及合并PR到仓库中。 这里我使用两个GitHub账户来进行说明 ...
健壮的I/O(RIO)
在上篇Unix系统级I/O中,我们介绍了有关在Unix环境下读取和写入文件的函数read和write,也提到了标准I/O在进行网络I/O时的局限性。但是在某些地方,直接使用read和write往往会出现不足值,比如在复杂的网络环境中读取socket。如果想让我们的程序更加的可靠,就需要反复的调用re ...
Unix系统级I/O
在Unix系统中,一且皆为文件。一个Linux文件就是一个字符序列,并且所有的I/O设备都被模型化成了文件。而所有的输入输出都被当作对对应文件的读和写。Linux提供了一组简单、低级的接口,使得所有的输入输出都可以用一种简单通用的方式来执行。 Linux文件的分类每一个文件都有一个类型(type)来 ...
Python正则表达式
python正则表达式的用途不过多赘述 python正则表达式的实现主要是通过python的re库,re库是python的标准库,所以无须安装 1.正则表达式的常用操作符 操作符 说明 实例 . 表示任何单个字符 [ ] 字符集,对单个字符给出取值范围 [abc]表示a、b、c,[ ...
缓冲区溢出(栈溢出)
前言在现在的网络攻击中,缓冲区溢出方式的攻击占据了很大一部分,缓冲区溢出是一种非常普遍的漏洞,但同时,它也是非常危险的一种漏洞,轻则导致系统宕机,重则可导致攻击者获取系统权限,进而盗取数据,为所欲为。 其实缓冲区攻击说来也简单,请看下面一段代码: void main(int argc, char * ...
Linux系统调用表(x86_64)
内核版本 Linux 4.7 Note:64位系统中,不再使用int 0x80来进行系统调用,取而代之的是syscall指令 %rax System call %rdi %rsi %rdx %r10 %r8 %r9 0 sys_read unsigned int fd char *buf ...
x86_64 Linux 运行时栈的字节对齐
前言C语言的过程调用机制(即函数之间的调用)的一个关键特性(起始大多数编程语言也是如此)都是使用了栈数据结构提供的后进先出的内存管理原则。每一个函数的栈空间被称为栈帧,一个栈帧上包含了保存的寄存器、分配给局部变量的空间以及传递给要调用函数的参数等等。一个基本的栈结构如下图所示: 但是,有一点需 ...