
daemonze_ngnix
文章平均质量分 62
tycoon1988
这个作者很懒,什么都没留下…
展开
-
深入理解SetUID ************************888
而内核检查一个进程是否具有访问某权限时,是使用进程的有效用户 ID 来进行检查的。转载 2014-09-05 18:24:24 · 606 阅读 · 0 评论 -
用C语言实现Ping程序功能 IBM**************8
PING协议是用来检验本地主机与远程主机是否连接,发送的是ICMP ECHO_REQUEST包。普通的套接字是基于TCP或者是UDP的,无法发送ICMP包,所以必须用原始套接字来实现。PING协议的客户端类型值为8,代码值为0,表示请求。而PING协议的响应端类型值为0,代码值也为0,表示应答. 以太网数据部分的最小值为46字节,而IP首部占20个字节,ICMP的首部占8个字节,所以PING的数据原创 2014-09-11 16:48:06 · 651 阅读 · 0 评论 -
用原始套接字编程实现linux中的 ping 命令 ************************
用原始套接字编程实现linux中的 ping 命令#include #include #include #include signal.h> #include #include #include #include #include #include #include #include #include #include原创 2014-09-11 16:04:12 · 793 阅读 · 0 评论 -
vim的quickfix模式
通常,我们在开发过程中,经常要写代码,编译,修改编译错误,这个过程会数十遍上百遍的重复。如果你是根据编译器输出的错误信息,打开出错的文件,找到出错的行,然后再开始修改,那效率未免太低下了。利用vim的quickfix模式,可以大大加快这一过程,你可以在vim启动编译,然后vim会根据编译器输出的错误信息,自动跳到第一个出错的地方,让你进行修改;修改完后,使用一个快捷键,跳到下一个错误处,再进行原创 2014-09-09 20:37:02 · 1641 阅读 · 0 评论 -
Linux使用日志系统调试守护进程
守护进程脱离终端控制,在调试时候造成一定不便。可以用syslog服务把程序出错信息输入日志文件中。从而可以看出问题所在。 把上次的程序用日志方式改写。 主要用到三个函数:syslog,openlog,closelog。 守护进程的写法不变,加入日志服务。 代码来自华清远见: #include #include #include #include原创 2014-09-05 18:08:02 · 1266 阅读 · 0 评论 -
linux下daemon守护进程的实现(以nginx代码为例)
ngx_int_tngx_daemon(ngx_log_t *log){ int fd; // 让init进程成为新产生进程的父进程: // 调用fork函数创建子进程后,使父进程立即退出。这样,产生的子进程将变成孤儿进程,并被init进程接管, // 同时,所产生的新进程将变为在后台运行。 switch (fork()) { case -1:原创 2014-09-05 17:37:19 · 707 阅读 · 0 评论 -
Linux中exec系列函数的应用
这段时间在研究linux中用户登陆和shell执行程序的原理。我们知道,shell命令分为内部命令和外部命令,内部命令有诸如cd,history,exit,echo等,常见的外部命令有ls,ping,netstat等,通过type命令可以查看一个命令是内部命令还是外部命令。当执行的命令是一个内部命令是,shell直接执行;那么shell是如何执行一个外部命令的呢?Shell本身也是一个程序原创 2014-09-05 17:27:24 · 1959 阅读 · 0 评论 -
用Python给Linux编写守护进程
守护进程(daemon)是指在UNIX或其他多任务操作系统中在后台执行的电脑程序,并不会接受电脑用户的直接操控。此类程序会被以进程的形式初始化。通常,守护进程没有任何存在的父进程(即PPID=1),且在UNIX系统进程层级中直接位于init之下。守护进程程序通常通过如下方法使自己成为守护进程:对一个子进程调用fork,然后使其父进程立即终止,使得这个子进程能在init下运行。–维基百科原创 2014-09-05 17:17:46 · 574 阅读 · 0 评论 -
linux下dup/dup2函数的用法
系统调用dup和dup2能够复制文件描述符。dup返回新的文件文件描述符(没有用的文件描述符最小的编号)。dup2可以让用户指定返回的文件描述符的值,如果需要,则首先接近newfd的值,他通常用来重新打开或者重定向一个文件描述符。他的原型如下:#include int dup(int oldfd);int dup2(int oldfd,int newfd);dup 和dup2都原创 2014-09-05 17:26:17 · 509 阅读 · 0 评论 -
Linux 技巧:让进程在后台可靠运行的几种方法
http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/index.html原创 2014-09-05 16:55:21 · 314 阅读 · 0 评论 -
Linux的udp服务端、客户端例子
UDP编程的服务器端一般步骤是:1、创建一个socket,用函数socket();2、设置socket属性,用函数setsockopt();* 可选3、绑定IP地址、端口等信息到socket上,用函数bind();4、循环接收数据,用函数recvfrom();5、关闭网络连接;UDP编程的客户端一般步骤是:1、创建一个socket,用函数socket();2、设置socket属性,用函数set原创 2014-09-18 11:58:48 · 692 阅读 · 0 评论 -
关于硬链接和软连接(符号链接)的区别
http://blog.youkuaiyun.com/hairetz/article/details/4168296原创 2014-09-23 11:48:44 · 530 阅读 · 0 评论