LINUX
文章平均质量分 57
lhuoshan
这个作者很懒,什么都没留下…
展开
-
linux 基本命令
使用TAB键用鼠标拷贝和粘贴提高操作速度 左键拖动---拷贝 中键点击---粘贴 1、mkdir 建立新目录名 加“." 在目录名前为隐藏目录(ls -a可查看) rm -rf 目录名 删除目录及子目录 rm -- -ee删除-ee文件 或者 rm "文件名" 2、mv 老文件名 新文件名 改变文件/目录名字 cp原创 2010-03-10 10:43:00 · 855 阅读 · 0 评论 -
Linux动态库的使用方式
Linux动态库的特点前面介绍的很清楚,这里介绍使用:编译、动态库的链接、编译参数解析。调用动态库的时候有几个问题可能会遇到。原创 2010-06-03 16:32:00 · 540 阅读 · 0 评论 -
Unix domain socket和memcached
<br />unix域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务器通信的一种方法,是IPC的方法之一,特定于*nix平台。使用unix domain socket有三个好处: <br />1)在同一主机上,unix domain socket比一般的tcp socket快上一倍,性能因素这是一个主要原因。 <br />2)unix domain socket可以在同一主机的不同进程之间传递文件描述符 <br />3)较新的unix domain socket实现把客户的ID和组ID提供给服务原创 2010-07-23 10:07:00 · 1471 阅读 · 0 评论 -
基于TCP协议的网络程序
<br />下图是基于TCP协议的客户端/服务器程序的一般流程:<br />图 37.2. TCP协议通讯流程<br /><br /><br />服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返回,同时应答一个ACK段,服务器收到后从accept()返回。<br />数据传输的过原创 2010-07-21 11:49:00 · 978 阅读 · 0 评论 -
网络字节序
我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分,磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小端之分。网络数据流同样有大端小端之分,那么如何定义网络数据流的地址呢?发送主机通常将发送缓冲区中的数据按内存地址从低到高的顺序发出,接收主机把从网络上接到的字节依次保存在接收缓冲区中,也是按内存地址从低到高的顺序保存,因此,网络数据流的地址应这样规定:先发出的数据是低地址,后发出的数据是高地址。TCP/IP协议规定,网络数据流应采用大端字节序,即低地址高字节。例如上一节的UDP段格式,地址0原创 2010-07-21 12:24:00 · 614 阅读 · 0 评论 -
基于TCP协议的网络程序
<br />下图是基于TCP协议的客户端/服务器程序的一般流程:<br />图 37.2. TCP协议通讯流程<br /><br /><br />服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返回,同时应答一个ACK段,服务器收到后从accept()返回。<br />数据传输的过原创 2010-07-21 12:22:00 · 598 阅读 · 0 评论 -
UNIX Domain Socket IPC
<br />socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。这是因为,IPC机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。UNIX Domai原创 2010-07-21 11:41:00 · 666 阅读 · 0 评论 -
基于UDP协议的网络程序
<br />下图是典型的UDP客户端/服务器通讯过程(该图出自[UNPv13e])。<br />图 37.3. UDP通讯流程<br /><br /><br />以下是简单的UDP服务器和客户端程序。/* server.c */#include <stdio.h>#include <string.h>#include <netinet/in.h>#include "wrap.h"#define MAXLINE 80#define SERV_PORT 8000int mai原创 2010-07-21 11:45:00 · 622 阅读 · 0 评论 -
去掉#!/bin/sh还能执行吗?
1,去掉#!/bin/sh还能执行吗?答:能执行,以默认的shell执行。2,#为注释,为什么#!/bin/sh还能被执行?答:在程序中的第一行,以!开头,能执行。其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释的,我们可以用各种各样的解释器来写对应的脚本,比如说/bin/csh脚本,/bin/perl脚本,/bin/awk脚本,/bin/sed脚本,原创 2010-05-13 09:37:00 · 752 阅读 · 0 评论 -
Linux系统的硬件驱动程序编写原理
本文详细地介绍如何Linux系统的硬件驱动程序的编写原理,指出哪些内核例程将会被调用、如何初始化驱动程序及如何分配内存等等。大家一定对Linux操作系统有所了解了,在此本人也不再赘述了。好吧,下面简单地介绍一下设备驱动程序。顾名思义,驱动程序是用来控制计算机外围设备的,Linux系统将所有的外围设备都高度地抽象成一些字节的序列,并且以文件的形式来表示这些设备。我们可以来看一下Linux的I/O子原创 2010-03-31 13:28:00 · 1315 阅读 · 2 评论 -
linux 统计当前目录下文件数
查看当前目录下文件的个数 ls -l | grep "^-" | wc -l 查看当前目录下文件的个数,包括子目录里的。ls -lR| grep "^-" | wc -l 查看某目录下文件夹(目录)的个数,包括子目录里的。 ls -lR| grep "^d" | wc -l原创 2010-03-24 08:54:00 · 727 阅读 · 0 评论 -
linux静态链接库与动态链接库的区别及动态库的创建(转)
Linux动态库的有其自身的特点,如实现进程之间的资源共享,将一些程序升级变得简单,甚至可以真正坐到链接载入完全由程序员在程序代码中控制。原创 2010-06-03 16:17:00 · 517 阅读 · 0 评论