[单刷APUE系列]第十一章——线程[1]

2016-03-10
阅读 7 分钟
3.5k
在前面的章节,都是以多进程单线程概念来讲解的,特别是早期的Unix环境,没有引入线程模型,所以无所谓线程概念,也就是一个进程在某一时刻只能做一件事情,而多线程则是可以让进程拥有多个线程,这样进程就能在某一时刻做不止一件事情。线程的好处和缺点就不多说了,相信各位应该都有体会了。当然,多线程和多处理器或...

[单刷APUE系列]第十章——信号[2]

2016-03-06
阅读 7 分钟
3.8k
SIGCLD和SIGCHLD是两个很相似的信号,SIGCLD是SystemV的一个信号名字,而SIGCHLD是BSD信号,但是POSIX.1标准使用了BSD的SIGCHLD信号名称。BSD的SIGCHLD信号是很普通的意思,就是子进程状态改变就会产生这个信号,父进程则是调用wait函数查看子进程的状态,而SystemV的SIGCLD信号则不同,基于SVR4的系统都会继承这个情况。

The road you are trudging is bound for loneliness.(前行的道路注定孤独)

2016-03-03
阅读 2 分钟
4.7k
我叫唐佳诚,是杭州电子科技大学会计学院大三学生,也在一些创业团队作为全职工程师工作过,除了UI设计,算是一位全栈开发者,主要是专注于iOS移动端开发。平时喜欢参与开源社区的讨论,对新技术也很关注。Github不是很活跃,因为主要都在coding.net等国内Git仓库托管代码,目前和同学一起在搞创业团队。至于工作内容,...

[单刷APUE系列]第十章——信号[1]

2016-02-28
阅读 7 分钟
3.9k
从前面的文章和实际使用中,大家应该也对信号有一些模糊的认识了。比如,Nginx使用信号来管理进程的启动关闭,UNIX进程信号是经典的操作异步事件机制。在早期,Unix信号是每个实现都不同的,但是随着Unix标准化的进行,标准提出了统一的信号机制模型。除了共有的信号以外,各自的实现还提供了扩展信号,当然,这个不是重...

[单刷APUE系列]第九章——进程关系

2016-02-20
阅读 4 分钟
4.3k
原著这里前面实际上还有两节,但是笔者感觉并不是特别重要,只是Unix各个实现的登录,所以就直接从进程组开始讲。在使用man 2 intro的时候,Unix系统手册上已经写了很多关于系统的概念,其中就有进程组概念

[单刷APUE系列]第八章——进程控制[2]

2016-02-16
阅读 6 分钟
4k
目录 [单刷APUE系列]第一章——Unix基础知识[1][单刷APUE系列]第一章——Unix基础知识[2][单刷APUE系列]第二章——Unix标准及实现[单刷APUE系列]第三章——文件I/O[单刷APUE系列]第四章——文件和目录[1][单刷APUE系列]第四章——文件和目录[2][单刷APUE系列]第五章——标准I/O库[单刷APUE系列]第六章——系统数据文件和信息[单刷APUE系...

[单刷APUE系列]第八章——进程控制[1]

2016-02-15
阅读 10 分钟
4.7k
在日常的开发使用过程当中,以及以往的开发经验,都应该知道进程是存在一个ID的,也就是进程ID(process ID),进程ID是唯一的,用以保证进程是唯一存在并且能被唯一获得。但是,在Unix系统中,进程ID是唯一的,但是在进程退出后,系统非常有可能将这个pid交付给新启动的进程,但是这样会导致新进程被误认为是之前存在的进...

[单刷APUE系列]第七章——进程环境

2016-02-09
阅读 7 分钟
4.4k
我们知道,无论是汇编还是C语言还是其他的语言,在编译成实际二进制代码的时候,都是存在着一个入口点,一般来说,这个入口点就是main函数,C语言都是从main函数处开始执行,在Unix开发中,main函数都是长这样的

[单刷APUE系列]第六章——系统数据文件和信息

2016-02-06
阅读 4 分钟
4k
使用过Unix系统的朋友应该知道/etc/passwd文件,这就是Unix系统口令文件,在POSIX1.x规范中规定Unix系统必须存在用户数据库,这些用户数据库里每个用户都需要包含一些字段,具体需要查看<pwd.h>头文件。

[单刷APUE系列]第五章——标准I/O库

2016-02-05
阅读 12 分钟
4.5k
在学习C语言的时候,肯定也对标准I/O库有所了解,这个库是由ISO C标注制定的,前面也说过,ISO C被包含在SUS标准中,所以SUS在ISO C的标准上,又进行了扩充。标准I/O库最大的好处就是不需要再和底层内核调用打交道了,非常方便的就能跨平台使用,在前面几节中,大家也对I/O各种繁琐的细节也有些头晕,而标准I/O库就很便...

[单刷APUE系列]第四章——文件和目录[2]

2016-02-04
阅读 14 分钟
4.4k
PS:原先写好文章了,结果备份Boom了,结果只好重写了一遍,文件系统部分本来是准备了图片的,但是现在没了。各位将就着看。 目录 [单刷APUE系列]第一章——Unix基础知识[1][单刷APUE系列]第一章——Unix基础知识[2][单刷APUE系列]第二章——Unix标准及实现[单刷APUE系列]第三章——文件I/O[单刷APUE系列]第四章——文件和目录[1][...

[单刷APUE系列]第四章——文件和目录[1]

2016-02-01
阅读 11 分钟
5.1k
stat()函数获得路径所指向的文件信息,函数不需要文件的读写执行权限,但是路径树中的所有目录都需要搜索权限(search)lstat()函数和stat类似,除了当路径指向为符号链接时,lstat返回链接本身信息,而stat返回对应的文件信息fstat()获取已经打开的文件描述符的文件信息fstatat()系统调用等价于stat和lstat函数,当AT_FDC...

[单刷APUE系列]第三章——文件I/O

2016-01-30
阅读 9 分钟
5.3k
在学习C语言的时候,应该也学习了使用<stdio.h>提供的通用文件操作,在C语言中,已经封装好了File结构体帮助操作文件,打开<stdio.h>

[单刷APUE系列]第二章——Unix标准及实现

2016-01-27
阅读 8 分钟
5.2k
Unix编程环境和C程序设计语言是如此的普遍,而且标准化工作做了非常多,但是20世纪80年代Unix版本种类的剧增以及他们差别的扩大导致跨平台移植变得越来越难,很多用户都呼吁对其进行标准化。Unix标准化有四个,ISO C、IEEE POSIX、Single Unix Specification、FIPS

[单刷APUE系列]第一章——Unix基础知识[2]

2016-01-25
阅读 9 分钟
5.4k
非常感谢一些朋友看这个文章,关于更新的问题,笔者会尽快整理撰写,因为之前的笔记都残缺不全了,所以是重新开始看原著,然后一边看一边写的,所以可能会稍微有点慢。文章里面的代码可能和原著有一些差别,但是都是个人认为应当修改的,如果有问题,敬请指正。

[单刷APUE系列]第一章——Unix基础知识[1]

2016-01-25
阅读 6 分钟
13k
Unix系统标准作为目前开发最重要的系统标准,应当是必须懂得的,无论是服务端C++开发还是安卓、iOS开发,实际上都和Unix环境开发密切相关,一个Unix环境开发者在入手安卓和iOS开发,是从来不会去询问很基础的一些问题,比如动态库静态库搜索路径、编译选项、环境变量的问题。目前笔者认为《Unix环境高级编程》ver3是最好...

[译]AngularJS Git提交信息规范

2016-01-10
阅读 3 分钟
5.8k
目标 生成 CHANGELOG.md 识别不重要的提交 在浏览 Git 历史时提供更多信息 格式化提交信息 恢复(Revert) 信息头部 {代码...} 信息主体 信息尾部 {代码...} 目标 能够通过脚本生成 CHANGELOG.md 能让 git bisect 过程忽略不重要的提交 在浏览历史时提供更好的信息 生成 CHANGELOG.md 我们在 changeling 里使用这三个标志:...

VirtualBox建立VagrantBaseBox

2015-12-26
阅读 2 分钟
2.4k
最近折腾OS X下搭建开发环境烦了,每次等半天的编译,然后版本不同说不定还会导致编译出错,然后后得手动修代码,而像homebrew这种包管理只适合安装工具链,根本不适合安装nginx`php`mysql这种应用,homebrew里的 mariadb 为了能安装,不得不增加-DWITHOUT-TOKUDB这种东西,而且根本没法搞上jemalloc这么好的内存管理器...

RedHat6系列Devtool-Set

2015-12-24
阅读 3 分钟
6.4k
红帽企业版 linux(RHEL)和它的社区版分支——CentOS,都是众所周知的知名企业级发行版,特别是提供了10年的生命周期,这意味着有足足10年内你不需要为安全补丁担忧,但是RedHat系列的发行版是根据Release概念发行的,也就是说它是在内核版本上划分出一个稳定版本,然后开分支不断改进,好处是稳定,缺点就是运行时和编译...

CSS3媒体查询器

2015-12-14
阅读 2 分钟
2.6k
随着响应式设计诞生,CSS3针对新的标准制定了更新的一些规范,从而使开发者更容易进行开发,使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。@media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。当你重置浏览器大小的过程中,页面也会根据浏览器的宽...

XSS跨站脚本攻击

2015-12-13
阅读 2 分钟
6.2k
跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击Web网站的方法。攻击者可以在网页上发布包含攻击性代码的数据,当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行。通过XSS可以比较容易地修改用户数据、窃取用户信息以及造成其它类型的攻击,例如:CSRF攻击。恶意攻击者往Web页面里...

mariadb主从复制

2015-12-05
阅读 3 分钟
5.4k
mariadb本身就是和mysql基本一样,所以mysql和mariadb的方法是可以通用的,但是注意,maraidb由于本身版本号高于mysql,所以不要将mysql和mariadb混用做主从复制,同时注意主数据库版本必须低于或者等于从数据库。

Tengine编译安装

2015-12-05
阅读 2 分钟
5.6k
Tengine作为阿里巴巴对nginx的分支,在国内外都有很高的声誉,其对nginx的一些功能扩展非常不错,比如jemalloc内存管理和lua语言支持,所以笔者准备在开发环境下使用。

PHP7.0.0在OS X编译安装

2015-11-29
阅读 13 分钟
8k
PHP7即将在12月3日正式发布,而RC8是已经差不多稳定了的版本,后续的GA版本主要都是在修复bug,所以为了未来开发环境的升级,准备尝试安装一下。

【转】一起来说Vim语

2015-11-21
阅读 2 分钟
2.1k
作为一款古老而具有持久生命力的编辑器,Vim 自有它的强大之处。很多人觉得 Vim 的学习曲线太陡峭了,为了能够把 Vim 用得风生水起,不得不记忆大量的命令。如果你是 Vim 新手,刚入门就开始面对着浩如烟海的命令逐条学习,我相信你一定会逐渐失去对它的兴趣。其实,Vim 以一种近乎自然语言的方式帮助你完成文本的编辑工...

开源许可证分类

2015-11-19
阅读 3 分钟
7k
引言 最近研究一些软件源码,然后分支自行维护的时候,开始研究各种开源许可证之间的区别,网上搜索了一些资料,特在此分享记录。 一张图区分GPL、BSD、MIT、Mozilla、Apache和LGPL之间的区别 首先借用阮一峰大大的一张相当直观清晰的图来划分各种协议:开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别 简单介绍 ...

Android布局Layout_weight详细剖析

2015-11-09
阅读 2 分钟
1.8k
最近在看Android开发,对于很多书上关于layout_weight的讲解感觉非常费解,很多都是像公式一样要求记住,而并未说明原因,笔者查询了android的官方开发文档,Trainning里面有一段关于layout_weight属性非常形象的描述,而后在网上看到了一篇关于这个属性的讲解,非常精彩,特此在这里摘录。

C++11中的std::bind

2015-10-23
阅读 2 分钟
16.8k
最近在看看cocos2dx的源代码,发现了cocos2dx 3.0相对于2.0改动了很多,最大的改变就是大量的使用了C++11的特性,比如auto等。其中有一个关于回调函数绑定的宏定义就使用了std::bind特性

PHP PSR-4 Autoloader

2015-10-12
阅读 2 分钟
3.1k
关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、“将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、“推荐”("RECOMMENDED")、“可以”("MAY")和”可选“("OPTIONAL")的详细描述可参见 RFC 2119 。

PHP PSR-3 日志接口规范

2015-10-12
阅读 5 分钟
2.9k
本规范的主要目的,是为了让日志类库以简单通用的方式,通过接收一个 Psr\Log\LoggerInterface 对象,来记录日志信息。框架以及CMS内容管理系统如有需要,可以对此接口进行扩展,但需遵循本规范,这才能保证在使用第三方的类库文件时,日志接口仍能正常对接。