我们知道 pipe 可以产生一对管道,用于两个进程之间的单工通信,今天在接触一个代码的时候,发现他有一个做法:为每个进程都准备读写管道的文件描述符,同时,赋初始值为 0 和 1,然后根据需要,再进行或者不进行 pipe 管道的创建,之后进行一些业务逻辑,在后面,进行一个硬编码的比较:如果该进程的管道文件描述符为 0…… 阅读全文
Tag Archives: Linux
在 HTTP 协议下分段下载文件
最近想要搞一个 linux 下的多线程下载工具,就像 wget 那样可以,只不过是多线程的,其中遇到一个问题,就是 http 如何分段下载,查找资料最后看到这里,http://www.rosoo.net/a/201006/…
假如一个文件有1000个字节,那么其范围就是0-999,则:
Range: bytes=500- 表示读取该文件的500-999字节,共500字节。
…… 阅读全文
linux 下 fork 后的文件资源处理问题
我们都知道 linux 下 fork 一个子进程出来,他能够继承父进程的文件资源,网络资源等,也从父进程那里拷贝了代码段,数据段,缓冲区等等到自己这里有了新的一份,那么,如果父子进程对于打开的文件资源操作不同,会是怎样的结果呢,先看正常的使用代码
#include <stdio.h>
#include <unistd.h>
int main(i…… 阅读全文
printf 一定需要 stdio.h 吗
刚刚看到一个范例代码,调用了 printf 函数,但是却没有包含 stdio.h 的头文件,这种写法第一反应就应该是不对的啊,本着动手实验的原则,试了一下
zrj@vm:~/c/test$ cat test.c
int main() {
printf("hello worldn");
return 0;
}
zrj@vm:~/c/test$ gcc -o test test.c
test.c: 在函数‘main’中:
t…… 阅读全文
Linux C 多线程初步
晚上想起来要敲一个 C 的多线程,于是搜了一下,找到这篇,http://zhuwenlong.blog.51cto.c…
#include <stdio.h>
#include <pthread.h>
#include <string.h>
#include <stdlib.h>
#include <sys/time.h>
#define MAX 10
pthread_t thread[2];
pthread_mutex_t mut;
…… 阅读全文
Apache ab 压力测试
apache 的 ab 真的是非常容易用,直接的说,就是下面这条命令就够了
C:Program FilesApache Software FoundationApache2.2bin>ab -n 100 -c 10 http://localhost/index2.html
这里我 index 的 html 文件就是 apache 的 it works 文件,在我的机子上,测试结果的吞吐率是 2000 多,应该算是比较低的一个数字了,对于…… 阅读全文
try git 的一些学习笔记
昨天由江阁介绍,发现了一个在线试用 git 的好地方,http://try.github.com/levels/1…,今天重新做一遍,同时当作笔记记录下来:
首先,使用 git init 命令来初始化 git 仓库,这个命令的主要作用是建立 .git 隐藏文件夹,里面存放着 git 本身跟踪用的一些文件,具体细节没有探究。
我们随时可以使用 git status …… 阅读全文
apt update 时软件包说明的数量了超出本程序的处理能力
一个上午基本上都在折腾这个了,坑爹啊
继上次 Linux 里面配多个 Python 出现 easy_install 出错的问题之后,问了江阁,他给了两个方法,一个用系统的包管理升级到 python 2.7 ,另外一个就是自己一切手动来。
上午试了一下自己配一点,发现没到那个水平,配的时候总是会出现各种错,而且错的比较灵异,想来是对 Linux 的…… 阅读全文
Linux 下多个 Python 版本造成 easy_install 出错
debian 默认有 python 2.5 ,我下了 2.73 的源码包自己编译安装了,也改了系统的默认调用
sudo rm /usr/bin/python
sudo ln -s /usr/lib/python2.73/python2.7 /usr/bin/python
这样确实可以默认启用 2.73 的 python ,但是后来使用
sudo apt-get install python-setuptools
sudo easy_install pip
的时候就报错,报…… 阅读全文