卷1部分4-8章

描述

C 库函数 char *getenv(const char *name) 搜索 name 所指向的环境字符串,并返回相关的值给字符串。

声明

下面是 getenv() 函数的声明。

char *getenv(const char *name)

参数

  • name -- 包含被请求变量名称的 C 字符串。

返回值

该函数返回一个以 null 结尾的字符串,该字符串为被请求环境变量的值。如果该环境变量不存在,则返回 NULL。


端口:

unix系统有保留端口号的概念。只有具有超级用户特权的进程才允许给它自己分配一个保留端口号。

这些端口号介于1~1023之间,一些 应用程序(如有名的Rlogin,26.2节)将它作为客户与服务器之间 身份认证的一部分。
客户端只需保证该端口号在本机上是惟一的就可以了。 客户端口号因存在时间很短暂又称临时端口号;

大多数TCP/IP实现给临时端口号分配1024---5000之间的端口号。大于5000的端口号是为其他服务器预留的。


getpid与getppid:

getpid返回当前进程标识,getppid返回父进程标识。 

用法: 
#include <sys/types.h>
#include <unistd.h>

pid_t getpid(void);
pid_t getppid(void);


exec与fork的继承:

当一个进程调用fork时,因为子进程在开始时复制父进程的存储映像,信号捕捉函数的地址在子进程中
是有意义的,所以子进程继承父进程的信号处理方式。
但是当子进程调用exec后,因为exec运行新的程序后会覆盖从父进程继承来的存储映像,那么
信号捕捉函数在新程序中已无意义,所以exec会将原先设置为要捕捉的信号都更改为默认动作。

fork子进程会继承父进程的信号,和打开的描述符。
exec也会继承调用进程的打开的描述符,不过可以通过fcntl函数关闭.不继承信号


文件描述符引用计数:

file对象有引用计数,记录了引用这个对象的文件描述符个数,只有当引用计数为0时,内核才销毁file
对象,因此某个进程关闭文件,不影响与之共享同一个file对象的进程.socket编程时,子进程close一

个继承的fd,只是限制了自己的进程使用这个描述符,并不会发送FIN


多宿主机:

一个计算机有多个IP地址,最简单的情况就是机器里有两块网卡,每个卡有不同的IP地址,分别连接不同的网段。

但不是多宿主机主机就一定有多个网卡。有多个IP地址是一定的!


read函数的返回值:

阻塞:读入FIN返回0,读入数据返回正数,出错返回-1.(考虑E_INTR)

非阻塞:读入FIN返回0,读入数据返回正数,出错返回-1.(考虑E_AGAIN,E_WOULDBLOCK)


fileno(stdin,stdout,stderr的类型)


stdin,stdout,stderr是FILE *

RTT(Round-Trip Time): 往返时延


(tcp)connnect  不能重启

tcp的connect函数一旦出错,不能直接再次调用。必须重新创建套接字。。。

udp的connect函数可以再次连接,更改结构体的值从而使连接的对象改变。或者把结构体

的地址族改成AF_UNSPEC。从而断开连接。注意,断开的是udp的connect连接的进程。

套接字类型write或send不指定目的地的sendto指定目的地的sento
TCP套接字可以可以EISCONN
UDP套接字,已连接可以可以EISCONN
UDP套接字,未连接EDESTADDRREQEDESTADDRREQ可以


>>从进程到内核传递套接字的函数:bind  connect sendto
内核到进程的函数: accept  recvfrom  getsockname getpeername(值结果参数)


maxfdp1的含义:

maxfdp1是待测试描述符的个数,从0,1,2.3....maxfdp1-1将被select测试


select函数与stdio混用的不良后果:

//参考转载的文章


shutdown函数:

//另一片文章: shutdown和套接字选项


弱端系统模型,强端系统模型(udp)

 弱端系统模型 (weak end system model): IP实现接受目的地址为本主机任一IP地址的数据报,而不
管数据报到达的接口。
注:当从二层接收到分组时,匹配系统的所有的接口的所有的ip地址。
强端系统模型 (strong end system model): 只接受达到接口与目的地址一致的数据报。
注:当从二层接收到分组时,匹配接收到该分组的接口的所有的ip地址

A和B都是主机的IP地址,属于不同的网络接口。一个报文内带的目的地址是A,却从地址为B的接口进来,接受还是不接受?接受,弱;不接受,强。
从安全角度考虑,应该选择强端系统模型。


ICMP:

ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。


udp详解:

//参见另一篇转载的文章




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值