
Linux-program&server
Hadas-Wk
想法驱动实践!
展开
-
Linux - Unix环境高级编程(第三版) 源代码编译(即头文件apue.h如何使用问题)
1. 下载代码:http://www.apuebook.com/code3e.html2. 安装依赖库:sudo apt-get install libbsd-dev 3. 进入下载目录make4. 复制头文件和动态链接库[plain] view plaincopysudo cp ./include/apue.h /u原创 2015-01-27 22:08:59 · 3998 阅读 · 0 评论 -
APUE.2e程序清单4-7举例分析
分析apue2e上的程序清单4-7 递归降序遍历目录层次结构,并按文件类型计数 。分析环境:FreeBSD 6.2-RELEASE,i386。程序清单4-7,英文版即121页的Figure 4.22. Recursively descend a directory hierarchy, counting file type为了便于程序的分析,我把原ftw4.c中用到的程序清单2-3转载 2015-02-01 15:53:52 · 818 阅读 · 0 评论 -
UNIX系统信号
SignalDescriptionSIGABRT由调用abort函数产生,进程非正常退出SIGALRM用alarm函数设置的 timer超时或setitimer函数设置的interval timer超时SIGBUS某种特定的硬件异常,通常由内存访问引起SIGCANCEL由Solaris Thread Library内部使用,通常不转载 2015-03-04 20:26:49 · 513 阅读 · 0 评论 -
进程fork()两次---解决一个进程不必等待子进程终止,也不希望子进程处于僵死状态(一般是服务器进程fork())
首先,要了解什么叫僵尸进程,什么叫孤儿进程,以及服务器进程运行所需要的一些条件。两次fork()就是为了解决这些相关的问题而出现的一种编程方法。 孤儿进程 孤儿进程是指父进程在子进程结束之前死亡(return 或exit)。如下图1所示:图1 孤儿进程但是孤儿进程并不会像上面画的那样持续很长时间,当系统发现孤儿进程时,init进程就收养孤儿进原创 2015-02-05 11:07:52 · 2564 阅读 · 1 评论 -
自动变量、静态变量、寄存器变量和易失变量的相关解释
自动变量 局部变量,如不作专门说明为静态变量,都是动态分配存储空间,存储在动态存储区中。这种变量叫自动变量。这种变量只在定义它们的时候才创建,在定义它们的函数返回时系统回收变量所占存储空间。对这些变量存储空间的分配和回收是由系统自动完成的,所以也叫自动变量。一般情况下,不作专门说明的局部变量,均是自动变量。自动变量也可用关键字auto作出说明。例如:(考虑到浏览器可能给作者本意要写在同一行的原创 2015-02-04 15:17:51 · 2050 阅读 · 0 评论 -
sscanf()函数总结
sscanf() 的作用:从一个字符串中读进与指定格式相符的数据.原型: int sscanf (const char *str,const char * format,........);说明: sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。转换后的结果存于对应的参数内。成功则返回参数数目,失败则返回0。注意:ssca转载 2015-03-21 17:01:13 · 616 阅读 · 0 评论 -
UNIX环境高级编程中的11章程序11-2编译问题---undefined reference to `pthread_create'
#include#includepthread_t ntid;void printids(const char *s){ pid_t pid; pthread_t tid; pid=getpid(); tid=pthread_self(); printf("%s pid %lu tid %lu (0x%lx)\n",s,(unsigned long)pid,(un原创 2015-03-10 21:37:52 · 828 阅读 · 0 评论 -
Linux ---#include <time.h>和 #include <sys/time.h>的区别
搜索了好几个,都是这么说的,有点看不明白。分析一下: 相同点: 二者都是与 日期时间相关的 头文件。不同点: time.h 是c99的,也就是c的库函数。 sys/time.h是linux系统的。 time.h既然是c库函数,那么在具体的平台上,就就可以依靠平台而实现,所以看上去是与平台无关的,谁都可以调用.而 sys/ti转载 2015-03-14 12:08:54 · 8605 阅读 · 0 评论 -
Linux中的timeval结构
该结构体是Linux系统中定义,struct timeval结构体在time.h中的定义为:[cpp] view plaincopystruct timeval { __time_t tv_sec; /* Seconds. */ __suseconds_t tv_usec; /* Microseconds.转载 2015-03-14 11:21:30 · 880 阅读 · 0 评论 -
Makefile 详解
写的很好,选择性的看了,先转了,供后面查阅。 作者blog:http://blog.youkuaiyun.com/haoel概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编转载 2015-03-31 22:18:58 · 496 阅读 · 0 评论 -
makefile入门举例(简单写)
1.首先准备所需的target和files: 按照makefile的基本格式,如下图所示. 图片来源:Makefiles in Linux: An Overviewtarget为calculate。files为main.c,add.c , divide.c , minus, multiply.c ,math.c ,代码分别如下:main.c代码如下:原创 2015-04-01 19:41:36 · 647 阅读 · 0 评论 -
UNPv13e中源代码编译(即如何使用头文件unp.h问题)
1.下载代码:官方下载http://www.unpbook.com/src.html2.安装依赖库:sudo apt-get install libbsd-dev3.解压并进入解压后的文件夹(我的是解压到/root/unpv13e)tar -zxvf unpv13e.tar.gz unpv13e4.按照README中的指导步骤进行(其中很详细) QU原创 2015-04-19 22:12:01 · 2916 阅读 · 0 评论 -
linux下安装boost
(一). 在Terminal中分别执行以下3步安装boost:1. 下载后进入压缩包所在目录解压: sudo tar -zxvf boost_1_52_0.tar.gz2. 进入./boost_1_52_0,运行: sudo ./bootstrap.sh --prefix=/usr /usr 可替换为任意路径 (事前运行./bootstrap.sh --help 看下参数说明)转载 2015-06-10 16:05:38 · 538 阅读 · 0 评论 -
VMware虚拟机配置Ubuntu桥接方式(Bridged)使虚拟机和宿主机能互相ping通
原文连接1、设置Bridged上网方式Vmware菜单栏VM->settings->Network Adapter或者Ctrl+D2、查看Bridged状态Vmware菜单栏Edit->Virtual Network Editor要设置成以上bridged模式,先关闭虚拟机,不关闭设置会提示只有虚拟机在power off状态才能设置,选择VMnet0,点击左下角转载 2015-06-11 16:04:11 · 669 阅读 · 0 评论 -
Linux下的nginx的安装
原文:http://blog.youkuaiyun.com/zhutulang/article/details/37778603参考:1、http://wenku.baidu.com/link?url=D4IHXXeY_k1zHuSJisbFJICMEbHleYwOUq9kw5tRlhIKEN-qcxsOwN5IeQutZJeoAwq0K09NJPw_iuf38YK6oYfVmjTXLnCFI转载 2015-07-13 11:40:24 · 514 阅读 · 0 评论 -
Unix / Linux 的程序退出状态 exit status---相关解释
对于 *NIX 系统而言,每一条命令,不管是内置的,SHELL 函数还是外置的,当它退出时,都 会返回一个小整数给引用它的程序,这就是程序退出状态 ( exit status ).一般来讲,退出状态 0 表示正常执行,没有遭遇任何问题。其他非零的状态码均表示失败。在 shell 中,可以使用 $? 来访问最后一个程序的退出状态。下面是 POSIX 的结束状态:原创 2015-02-07 11:28:33 · 7042 阅读 · 0 评论 -
UNIX/Linux 中的bg/fg/jobs命令解析
为了方便用户进行任务管理和控制,linux提供了bg/fg/jobs这几条命令来轻松调度任务。从以下命令执行来看,可以知道bg/fg/jobs这几条命令都是linux shell的特殊内建命令。所以在执行bg/fg/jobs这几条命令时,当前shell能够自己解释而不需要额外创建两个child process来完成这件事。$ which bg$ which fg$ wh原创 2015-03-04 19:49:44 · 2016 阅读 · 0 评论 -
UNIX环境高级编程源代码配置----如何不用作者自己写的apue.h头文件的方法
这里要谈到的一个问题就是该书中的源代码编译的问题。此书中差不多每个历程中,都会有这样一行源码:在第二版和第三版中为:#include "apue.h" 这个头文件是作者把把每个例程中常用的标准头文件,一些常用的出错处理函数(err_**()之类的函数)和一些常用的宏定义给整理在一个头文件中。这个 可以省去在每个例程中录入较多的重复代码,这样可以减少每个例程的长度。但是,这原创 2015-01-27 22:15:19 · 948 阅读 · 0 评论 -
UNIX/Linux中的文件按描述符标志或文件状态标志的修改,即 “与或非” 操作
或操作前面提到过文件状态标志就是由一个或多个常量(标志值)组成的文件状态标志可以用一个二进制数表示 该二进制数的每一位都表示一个常量,二进制数每一位都可以为0或者为1.为1就表示该常量被选中,为0表示未被选中举个例子假设O_WRONLY设为选中的二进制数为 00000001 (即最低位代表O_WRONLY)假设O_CREATE 设为选中的二进制数为原创 2015-01-30 11:41:56 · 1302 阅读 · 0 评论 -
屏蔽字O_ACCMODE 整数常量
Macro: int O_ACCMODEThis macro stands for a mask that can be bitwise-ANDed with the file status flag value to produce a value representing the file access mode. The mode will be O_RDONLY, O_WRONLY原创 2015-01-30 10:30:39 · 1538 阅读 · 0 评论 -
chown与chmod的用法和区别
chown 命令 功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。 语法:chown [选项] 用户或组 文件说明:chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户I D。组可以是组名或组ID。文件是以空原创 2015-01-30 20:57:10 · 897 阅读 · 0 评论 -
UNIX/Linux---ln 命令详解
分类: ubuntu2013-05-14 22:33 718人阅读 评论(0) 收藏 举报目录(?)[+]转自:http://blog.haohtml.com/archives/4220转自:http://www.xue5.com/Server/Linux/664007.html指令名称 :ln 使用权限 :所有使用者使用方式 : l原创 2015-01-31 21:06:20 · 716 阅读 · 0 评论 -
创建线程时,undefined reference to 'pthread_create'问题解决
Linux线程管理中,创建线程时,出现undefined reference to 'pthread_create'问题:1.问题原因: pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。原创 2015-01-06 20:08:46 · 816 阅读 · 0 评论 -
UNIX/Linux---du命令详解
du命令:disk usage,顾名思义,是关于目录使用情况的。对了~ 它的作用就是计算目录或文件大小的。1. 想看当前目录下所有目录以及子目录的大小: # du -h .“.”代表当前目录下。也可以换成一个明确的路径-h表示用K、M、G的人性化形式显示2. 只想看当前目录下abc目录的大小,并不想看其他目录以及其子目录:# du -ch ab原创 2015-01-31 11:50:04 · 1319 阅读 · 0 评论 -
makefile的详细讲解
概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile转载 2015-01-21 15:28:28 · 923 阅读 · 0 评论 -
带外数据---详解
带外数据(out—of—band data),有时也称为加速数据(expedited data), 是指连接双方中的一方发生重要事情,想要迅速地通知对方。 这种通知在已经排队等待发送的任何“普通”(有时称为“带内”)数据之前发送。 带外数据设计为比普通数据有更高的优先级。 带外数据是映射到现有的连接中的,而不是在客户机和服务器间再用一个连接。 在字节流服转载 2015-03-05 21:09:48 · 564 阅读 · 0 评论 -
UNIX /Linux中的memcpy函数用法详解
原型:extern void *memcpy(void *dest, void *src, unsigned int count);用法:#include 功能:由src所指内存区域复制count个字节到dest所指内存区域。说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。举例: // memcpy.原创 2015-03-19 21:32:27 · 7033 阅读 · 0 评论 -
UNIX/Linux 进程的挂起和恢复
进程的挂起及恢复#ctrl+z:挂起,程序放到后台,程序没有结束。#jobs:查看被挂起的程序工作号恢复进程执行时,有两种选择:fg命令将挂起的作业放回到前台执行;用bg命令将挂起的作业放到后台执行格式:fg 工作号;bg 工作号进程:正在执行的一个程序程序:是一种写好的代码或脚本&:后台执行,不占用终端如:xeyes &ps命令进程查看命令ps命令:p原创 2015-03-05 22:21:58 · 1502 阅读 · 0 评论 -
实际用户ID,有效用户ID与保存设置用户ID---相关解释
前段时间一直没搞明白这几个ID之间的关系,今天看到一篇博文,这才拨云见日,才有所了解了.real user ID:实际用户ID,指的是进程执行者是谁effective user ID:有效用户ID,指进程执行时对文件的访问权限saved set-user-ID:保存设置用户ID,作为effective user ID的副本,在执行exec调用时后能重新恢复原来的effect转载 2015-02-05 21:48:38 · 559 阅读 · 0 评论 -
内存流问题---APUE程序5-15,对内存流的写入是如何在我们自己提供的缓冲区上操作的
1.首先贴下自己的代码(加入了一些打印语,句其中'#'代表‘\0‘)program5-15.c 运行环境:Linux 3.2.0#include#define BSZ 48int main(void){ FILE *fp; char buf[BSZ]; int i; memset(buf,'a',BSZ-2); printf("my buf0 %s---%ld--原创 2015-02-03 11:23:47 · 1000 阅读 · 1 评论 -
Nginx作为反向代理的简单应用
原文:http://zhou123.blog.51cto.com/4355617/840837对于Nginx的反向代理主要在四个方面:1、URL重写 URL rewirte2、反向代理 reverse proxy 并启用缓存功能 3、负载均衡4、安装第三方模块,实现健康状态检测。 关于一些Nginx的应用,可以在Nginx的官方网站上看到,内容介绍的也相当转载 2015-07-16 16:14:17 · 1586 阅读 · 0 评论