03 2012 档案
摘要:共享文件:UNIX系统支持在不同进程间共享打开的文件。在介绍dup()函数前,先介绍共享文件。1.每个进程在进程表中都有一个记录项,每个记录项中有一张打开文件描述符表,可将视为一个矢量,每个描述符占用一项。与每个文件描述符相关联的是: (a) 文件描述符标志。 (b) 指向一个文件表项的指针。2.内核为所有打开文件维持一张文件表。每个文件表项包含: (a) 文件状态标志(读、写、增写、同步、非阻塞等)。 (b) 当前文件位移量。 (c) 指向该文件v节点表项的指针。3.每个打开文件(或设备)都有一个 v节点结构。v节点包含了文件类型和对此文件进行各种操作的函数的指针信息。对...
阅读全文
摘要:为了简化数据库大表的管理.ORACLE8以后推出了分区选项.分区可将表分离在不同的表空间上,用分而治之的方法来支撑元限膨胀的大表.将大表分割成较小的分区可以改善表的维护、备份、恢复、事务及查询性能。分区的优点:1、 增强可用性:如果表的一个分区由于系统故障而不能使用,表的其余好的分区仍可以使用;...
阅读全文
摘要:Oracle在逻辑上以表空间存储数据,而实际上是以数据文件存储数据。表空间和数据文件 表空间:某一时刻只属于一个数据库;由一个或多个数据文件组成;可近一步划分逻辑存储单元 数据文件:只能属于一个表空间和一个数据库表空间类型 system表空间: – 随数据库创建 – 包含数据字典 – 包含 SYSTEM 还原段 非SYSTEM表空间: – 用于分开存储段 – 易于空间管理 – 控制分配给用户的空间量创建表空间 创建表空间的命令:create tablespace CREATE TABLESPACE tablespace [DATAFILE clause] [MINIM...
阅读全文
摘要:启动我们的客户/服务器程序对,然后kill掉服务器子进程。看看客户端发生了什么?服务器端查看结果:zhaoxj$ netstat -antdp(并非所有进程都能被检测到,所有非本用户的进程信息将不会显示,如果想看到所有信息,则必须切换到 root 用户)激活Internet连接 (服务器和已建立连接的)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN - tc...
阅读全文
摘要:我们不愿意留存僵尸进程,因为它们占用内核空间,最终导致我们耗尽进城资源。为防止子进程变为僵尸进程,fork生成的子进程都必须被wait。#include "unp.h"intmain(int argc, char **argv){ int listenfd, connfd; pid_t childpid; socklen_t clilen; struct sockaddr_in cliaddr, servaddr; void si...
阅读全文
摘要:启动服务器端程序zhaoxj$ make tcpserv01gcc -I../lib -g -O2 -D_REENTRANT -Wall -c -o tcpserv01.o tcpserv01.cgcc -I../lib -g -O2 -D_REENTRANT -Wall -o tcpserv01 tcpserv01.o ../libunp.a -lpthreadzhaoxj$ ./tcpserv01 &[1] 13424zhaoxj$ netstat -antp(并非所有进程都能被检测到,所有非本用户的进程信息将不会显示,如果想看到所有信息,则必须切换到 root 用户)激活Inte
阅读全文
摘要:main 函数:#include "unp.h"int main(int argc, char **argv){ int sockfd; struct sockaddr_in servaddr; if (argc != 2) err_quit("usage: tcpcli <IPaddress>"); /*Socket函数原型int socket (int family, int type, int protocol);protocol为0时 ,以选择给定family和type组合的系统缺省值...
阅读全文
摘要:一个简单的回射服务器的步骤:1.客户端从标准输入读入一行文本,并写给服务器。2.服务器端从网络输入读入这行文本,并返回给客户3.客户端从网络输入读入这行反射文本,并显示在标准输出上。如图:服务器端的反射程序:#include "unp.h"int main(int argc, char **argv){ int listenfd, connfd; pid_t childpid; socklen_t clilen; /*sockaddr_in为ipv4 套接口地址结构 详解参照3.2节...
阅读全文
摘要:1.下载(UNIX® Network Programming Volume 1)源码2.阅读README提醒:很多初学者跟我一样静不下心来读E文的README。可README对我们搭建程序环境至关重要,一定要克服这种心里障碍。根据readme提示 进行下列操作1. ./configure # try to figure out all implementation differences # 会在根目录生成相应的 Makefile,Make.defines,config.h 等重要文件2. cd lib # build the basic library that all progr
阅读全文
摘要:功能说明:Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况参 数:-a或–all 显示所有连线中的Socket。-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。-c或–continuous 持续列出网络状态。-C或–cache 显示路由器配置的快取信息。-e或–extend 显示网络其他相关信息。-F或–fib 显示FIB。-g或–groups 显示多重广播功能群组组员名单。-h或–help 在线帮助。-i或–interfaces 显示网络界面信息表单。-l或–listening 显示监控中
阅读全文
摘要:在shell中常用的特殊符号罗列如下:# ; ;; . , / \ 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || && {xx,yy,zz,...}~ ~+ ~- & \<...\> + - %= == !=输出/输入重导向> >> < << : > &> 2&> 2<>>& >&2# 井号 (c
阅读全文
摘要:[ -a FILE ] 如果 FILE 存在则为真。 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。 [ -d FILE ] 如果 FILE 存在且是一个目录则为真。 [ -e FILE ] 如果 FILE 存在则为真。 [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。 [ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真。 [ -h FILE ] 如果 FILE 存在且是一个符号连接则为真。 [ -k FILE ] 如果 FILE 存在且已经设置了粘制位则为真
阅读全文
摘要:注意:使用方法:# PS1='自定义内容'注意两边的单引号示例: PS1='(\u@\H \d \t)\$'----------------------------------------------------------------------------------------------------------------PS1:就是用户平时的提示符。PS2:第一行没输完,等待第二行输入的提示符。Linux系统提示符是用系统变量PS1来定义的。一般系统默认的形式是:[username@host 工作目录]$. 用echo $PS1可以得到PS1的值,即P
阅读全文