博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《linux网络编程》学习笔记
阅读量:6817 次
发布时间:2019-06-26

本文共 1717 字,大约阅读时间需要 5 分钟。

vim操作汇总:
1、vim分为命令模式和编辑模式,默认进入命令模式,按“i”进入编辑模式,按ESC进入命令模式。
2、命令模式下输入":w"保存文件,"wq"保存并退出,"q!"不保存直接退出,"set nu"显示行号,"gg=G"自动排版,"dd"删除整行,"u"恢复刚刚修改的内容,"/b"查找字符串。
 
函数介绍:
1、fork()函数会创建一个进程,该进程的大部分变量保持和父进程一致,子进程自动继承父进程打开的文件句柄,是父进程的克隆,子进程和父进程一样从调用fork函数后的代码开始执行,返回值小于0时表示创建进程失败,返回值等于0则表 示进入子进程,返回值大于0表示进入父进程。
2、wait()函数如果进程中存在子进程,则在父进程中调用wait函数会导致父进程阻塞,直到子进程结束并返回子进程id,参数为子进程退出时的状态。
3、int signal(int sig, __sighandler_t handler);函数第一个参数表示参数类型(除了SIGKILL 和 SIGSTOP);第二个参数可以是一个函数指针,处理在信号发生时需要执行的动作,也可以是SIG_IGN(忽略信号符号), 还可以是SIG_DEL(恢复系统默认信号处理符号)。在父进程中设定的信号和函数的关联关系会被 exec()调用自动用SIG_DFL 恢复成系统的缺省动作,这是因为在 exec 的子进程中没有父进程的函数映象。
4、int kill(pid_t pid, int sig);函数第一个参数指定信号发送对象进程标识。 一个进程并不是向任何进程均能发送信号的,这里有一个限制,就是 普通用户的进程只能向具有与其相同的用户标识符的进程发送信号。也就是说,一个用户
的进程不能向另一个用户的进程发送信号。只有  
root  
用户的进程能够给任何线程发送信号。
由于调用
kill()
的进程需要直到信号发往的进程的标识符,所以这种信号的发送通常只 在关系密切的进程之间进行,比如父子进程之间。
5、unsigned int alarm(unsigned int seconds);函数参数是以秒为单位给出了定时器的时间,当到达的时候,就向系统发送一个SIGAR LM信号。该函数通过exec()调用后仍然有效,但在fork()调用后,在子进程中失效。
6、linux中管道实现利用int pipe(int fd[2])函数,数组中fd[0]是从管道中读出数据的句柄,fd[1]是向管道中写入数据的句柄,也就是从fd[1]写入由f[0]读出。可以像读取和写入文件一样对管道进行读写但是要确保数据是单向传输。匿名管道只能在父子进程中进行通信,命名管道可以再不同进程中通信。
7、System V IPC进程通讯包括消息队列,信号量,共享内存。
8、由于内存共享机制不能保证两个进程对同一段内存操作的先后顺序,因此一般与信号量一起使用,利用信号量实现同步,利用共享内存进行数据的读写。
9、由于windows下的socket编程是从linux下移植过去的,因此编程的函数和接口和windows下大同小异,提供了阻塞,非阻塞,I/O多路复用,信号驱动I/O,异步I/O。阻塞模式:程序调用编程接口则当前进程会进入等待状态,直到有连接到来或有数据到来;非阻塞:如果没有连接和数据到来则函数直接返回错误,进程不会进入等待状态,这种方式需要不停的检测函数返回值,极大浪费了CPU资源。I/O多路复用模式:利用select函数实现对多个文件描述符的检测,在文件描述符状态发生变化时,select函数会返回,可以获取文件描述符状态进行相应操作,select函数还可以设置等待超时时间;信号驱动I/O模式:当内核文件描述符就绪时,系统会发送SIGIO信号给应用程序,应用程序实现对SIGIO信号的处理,对TCP作用不大,因为TCP中SIGIO信号发生几率太高;异步I/O模式:当内核进行初始化结束后系统发送信号通知应用程序。

转载于:https://www.cnblogs.com/ourroad/archive/2012/11/21/3078924.html

你可能感兴趣的文章
关于数据库查询时报“query block has incorrect number of result columns”
查看>>
记录一款Unity VR视频播放器插件的开发
查看>>
webApi跨域问题
查看>>
读取文件
查看>>
json字符串转换对象的方法1
查看>>
浅谈网站路径分析 转自“蓝鲸网站分析博客”
查看>>
C# Note36: .NET unit testing framework
查看>>
我的博客第一天
查看>>
Aptana studio 3前端开发编辑器推荐
查看>>
RMAN restore fails with ORA-01180: can not create datafile 1 (文档 ID 1265151.1)
查看>>
转 多个版本的数据库在同一服务器上ORA-12557
查看>>
Socket的长连接和短连接
查看>>
java求素数和求一个数的一个正整数的质因数
查看>>
centos6.6 部署 cacti 并采集交换机流量
查看>>
web 开发之js---巧用iframe实现jsp无刷新上传文件
查看>>
WMS相关中英文术语
查看>>
实时监测网络流量
查看>>
块IO与流IO简介
查看>>
best introduction to camera calibration
查看>>
struts2单文件上传案例演示(二)
查看>>