段机制实现虚拟地址到线性地址的转换,然而,linux有意的将linux的所有段基址设为0,所以在linux中,线性地址与虚拟地址是相同的,我们以后讨论中,也不对虚拟地址和线性地址进行区分。我们着重学习分页机制,分页机制实现线性地址到物理地址的转换。
继续阅读 »
分页机制
fork()带来的疑惑
由fork()带来的疑惑促成了我的linux内核之旅
fork()可以创建新进程,新进程是父进程的一个拷贝,这是大家都知道的.
fork()有一些有趣的特点:
继续阅读 »
fork的那些事
linux下宽字符串与多字节字符串之间的转换
最近写linux下的字幕下载软件时,遇到了中文宽字串和多字节串之间的转换问题,这问题困扰了我不久呀,现在终于开窍了。。。
我们知道(请看《Unicode、UTF-8、多字节字符、宽字符》):多字节字符串”你好\n”在源文件以及目标文件中,都是utf-8编码,一个英文字符1字节,一个汉字3字节。因为strlen是根据一字节一字符来计算字符个数的,所以strlen无法处理多字节字符串。
宽字符L”你好\n”在源文件中是utf-8编码,但在目标文件中是UCS编码的,一个字符占4字节。wstrlen便是依据每4字节为一字符,计算有多少字符。
继续阅读 »
Unicode、UTF-8、多字节字符、宽字符
Unicode、UTF-8
为了统一全世界各国语言文字的编码,ISO 制定
了ISO 10646 标准,也称为UCS(Universal Character Set)。UCS编码的长度是31位,可以表示2^31个字符。同时,另一组织制定了Unicode编码。后来ISO与这个组织联手统一了编码。所以Unicode与UCS是一样的。
有了字符编码,另一个问题就是这样的编码在计算机中怎么表示。现在最广泛用的是UTF-8,UTF是Unicode Transformation Format的缩写。UTF-8具有一下特点:
继续阅读 »
linux下socket编程之远程备份服务器
分别采用TCP或UDP协议编写一个远程数据备份服务器,运行客户端将本地文件备份到远程的服务器中。
服务器的功能:接受客户端请求,把客户端的文件进行备份(可以备份到指定的文件夹)。
客户端的功能:与远程服务器进行连接,在连接后把本地的文件发送给远程备份服务器。
继续阅读 »
近期评论