软件开发,安全加密
在多线程程序中,有一种读写者的问题,即对某些资源的访问,存在两种可能的情况,一种是访问必须排他的,称为写操作;另外一种访问是可共享的,称为读操作。 处理读写着问题的两种常见策略是:强读者同步和强写者同步。
在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输出: Resource temporarily unavailable 总结:这个错误表示资源暂时不够,能read时,读缓冲区没有数据,或者write时,写缓冲区满了。
几乎所有应用程序中都会有内存的分配和释放,而频繁的分配和释放内存无疑会产生内存碎片,降低系统性能,尤其对性能要求较高的程序比较明显。下面介绍几种常见的内存池技术。 一 环形缓存 环形缓存的基本原理如图: 初始化状态...
一、SI信息的构成 1、信息构成 SI信息内容是按照network(网络)→transport strem(传输流)→service(业务)→event(事件)的分层顺序描述,如图1所示。
虽然五年前就学了驱动中poll方法的实现,LDD3的描诉也是比较详细的,但当时我是初学者,理解的不够深入,就算学了也很快就还给了LDD3。这次复习驱动的poll方法,顺便认真跟踪了内核poll系统调用的源码,从整体的poll实现结构上理解了从用户层传递下来的poll系统调用在内核中是的实现。
输入命令会提示:bash: lsof: command not found 该命令存放于/usr/sbin/目录下,可以/usr/sbin/lsof 加参数查询内容。 1.列出所有打开的文件: lsof 备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位2.
概述 本文深入介绍基础的 Linux 进程管理技术。您将学习如何: 创建简单的正则表达式 使用正则表达式搜索文件和文件系统 使用正则表达式和 sed 本文帮助您准备 Linux Professional Institute's Junior Level Administration (LPIC-1) 考试的 103 主题下的 103.7 考核目标。
文件的压缩和解压缩是计算历史上最有用的创造之一,但缺乏可移植性和开放工具是阻碍它发挥其应有作用的最主要的一个障碍。只要我们是与其他使用类似 Unix 操作系统的用户交换文件,就可以使用例如 compress 、gzip 和 bzip2 这样的可移植工具(如需链接,请参阅 参考资料 )。
关于 XZ Utils XZ Utils 是为 POSIX 平台开发具有高压缩率的工具。它使用 LZMA2 压缩算法,生成的压缩文件比 POSIX 平台传统使用的 gzip、bzip2 生成的压缩文件更小,而且解压缩速度也很快。
基本使用 对于下面这样的一个简单程序test.cpp: int main() { int* p1 = new int; char* p2 = new char[10]; return 0; } 我们的基本需求当然是对于该程序报告存在两处内存泄漏。
1.概述 linux运行在保护模式下,但是当机器启动复位的时候却处于实模式下。所以写bootloader做的工作也是在实模式之下的。 linux的内核有多种格式,老式的zImage和新型的bzImage。
早期时,启动一台计算机意味着要给计算机喂一条包含引导程序的纸带,或者手工使用前端面板地址/数据/控制开关来加载引导程序。尽管目前的计算机已经装备了很多工具来简化引导过程,但是这一切并没有对整个过程进行必要的简化。
1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序。
Linux 是一个稳定而可靠的环境。但是任何计算系统都有无法预料的事件,比如硬件故障。拥有关键配置信息的可靠备份是任何负责任的管理计划的组成部分。在 Linux 中可以通过各种各样的方法来执行备份。
http://www.ibm.com/developerworks/cn/linux/l-roadmap/part6/index.html 在 Linux 中文件和存储设备的使用与 Windows 中不同。
原文已删除
使用QUdpSocket进行UDP编程 UDP(用户数据报协议)是一个轻量级的,不可靠的,面向数据报的,无连接协议。当可靠性不是很重要的时候就可以使用该协议。
网络编程目录 *Qt中有关网络编程的类 *HTTP和FTP高层网络操作 *使用QTcpSocket和QTcpServer进行TCP编程 *使用QUdpSocket进行UDP编程 *使用QHostInfo解析主机名 *对于网络代理的支持 *Bearer Management Support 网络编程 QtNetwork模块提供了我们实现TCP/IP客户端和服务器端的类。
分析QNetworkAccessManager的时候,有一段设定HTTP的请求包的Header,当时没进行深入的分析。 void QHttpNetworkConnectionPrivate::prepareRequest(HttpMessagePa...
话说昨日走到QNetworkReplyImplPrivate::_q_startOperation(),勾引出QNetworkAccessHttpBackend::open(),今日接着欣赏QT之美丽。
接上面,进一步分析QNetworkAccessManager::createRequest()的实现。去除不重要的分支末节,看其调用的QNetworkReplyImplPrivate::setup()和QNetworkAccessManagerPrivate::findBackend()的代码。
在动手分析前,简单介绍一下HTTP协议。HTTP协议是一种为分布式,合作式,超媒体信息系统。它是一种通用的,无状态(stateless)的协议,除了应用于超文本传输外,它也可以应用于诸如名称服务器和分布对象管理系统之类的系统,这可以通过扩展它的请求方法,错误代码和报头来实现。
今天分析QNetworkAccessManager、QNetworkRequest和QNetworkReply组成的高级抽象API序列。在动手之前,把doc中有关QNetworkAccessManager的介绍看了一遍。
前面分析中,一个问题一直没有解决:新生成的SOCKET是什么时候加入WSASelect()的?另外还有一个不是很大的问题,close流程。 在QEventDispatcherWin32Private::doWsaAsyncSelect()中WSAAsyncSelect()设置一个断点,观察call stack: > QtCored4.
3、读取信息 在QAbstractSocket中,有两个成员是收发数据用的:readData()、writeData() readData()有两种读取方式:有缓冲和无缓冲方式。
前面分析(一)之前没有看QT自带的文档,看了doc之后对QT的网络体系有一个大致的了解: QNatvieSocketEnginePrivate是OS相关的API封装,和QNativeSocketEngine一起构成具体平台SOCKET实现; QTcpSocket、QUdpSocket、QTcpServer构成底层的应用API;QSslSocket是SSL加密相关API; QHttp、QFtp构成高层次应该API; QNetworkAccessManager、QNetworkRequest、QNetworkReply是高度抽象的网络层。
首先对Windows下的网络编程总结一下: 如果是服务器,其WinSDK调用分别为: WSAStartup() -> socket() -> htons() / htonl() -> bind() -> listen() -> accept() -...
网络编程是个很大的课题,这里只限Windows Socket编程。转一篇别人的文章,仅供参考。 一, 什么是Socket 接触网络编程当然要了解Socket,Socket(套接字)是一种网络编程接口,Socket提供了很多灵活的函数,帮助程序员写出高效的网络应用。
新到公司不久,就遇到经常无线断网的情况。每天断一两次,每次大约持续30s左右。刚开始觉得很简单,以为是无线路由器不稳定,重启哈就行了,这样的情况持续了半个月左右。同事们内心积累的不满终于爆发了,对我的工作表示相当的不满。
几周前, Linus Torvalds在Slashdot上回答了一些问题。其中有一条引发了开发者们的强烈关注,当被问到他心目中的内核黑客时,他说自己这些日子已经不怎么 看代码了,除非是帮别人审查。
摘要: 本文简单介绍了TCP面向连接理论知识,详细讲述了TCP报文各个字段含义,并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析。 一、概述 TCP是面向连接的可靠传输协议,两个进程互发数据之前需要建立连接,这里的连接只不过是端系统中分配的一些缓存和状态变量,中间的分组交换机不维护任何连接状态信息。
http://doc.qt.digia.com/4.7/model-view-programming.html Model/View Programming Introduction to Model/View Programmin...
原文:http://wifihack.net/blog/2009/12/pthread-create-join-detach-release-thread/ 这两天在看Pthread 资料的时候,无意中看到这样一句话(man pthread_detach): Either pth...
问题描述: 我的一个服务器程序, 在Windows下运行正常. 但当在Linux(centos 6.3)下,进行对端未开启的异常测试时,出现莫名退出 . 最后跟踪到是write调用导致退出.
This is the third post in the article series about Unix and Linux utilities that you should know about.
This is the second post in the article series about Unix utilities that you should know about.
Hi all. I'm starting yet another article series here. This one is going to be about Unix utilities that you should know about.
Linux I2C驱动是嵌入式Linux驱动开发人员经常需要编写的一种驱动,因为凡是系统中使用到的I2C设备,几乎都需要编写相应的I2C驱动去配置和控制它,例如 RTC实时时钟芯片、音视频采集芯片、音视频输出芯片、EEROM芯片、AD/DA转换芯片等等。
本文讲解linux内核启动之BIOS启动阶段,640KB的RAM是BIOS设计者自由使用的区域,如何使用取决于 BIOS软件的设计者,4GB的物理地址空间至少被划分为两个部分,一部分是内存的地址空间,另外一部分地址空间用于对BIOS芯片存储单元进行寻址。
由于要完成文件Win7 与VMware虚拟机(Fedora 16)之间的文件共享,所以需要进行samba服务的配置。具体过程如下: 1.下载并安装Samba服务 root下执行命令:yum install samba 2.
在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。
The UNIX Time-Sharing System* D. M. Ritchie and K. Thompson ABSTRACT Unix is a general-purpose, multi-user, interactive oper...
A:Uboot的命令功能 Uboot在硬件初始化完成之后 调用 main_loop()进入一个无限循环,等待用户输入命令 当用户输入命令之后,首先将调用run_command()函数, 然后调用find_cmd()函数把用户从终端输入的命令进...
本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上: 1、u-boot工程的总体结构 2、u-boot的流程、主要的数据结构、内存分配。
作者:北南南北 来自:LinuxSir.Org 提要:对于一个硬盘(包括移动存储设备)如何规划分区结构及如何划分才是比较合理的;为了减少由于硬盘划分不合理而造成的风险及不必要的麻烦,有必要重述如何对一个硬盘的分区结构进行规划; ++++++...
result = ~crcGetRegisters(); // 填写FCS,先低后高 ppp[11] = result & 0xff; ppp[12] = (result >> 8) & 0xff; ...
指令 功能 nand info 显示可使用的 Nand Flash nand device [dev] 显示或设定当前使用的 Nand Flash nand read addr off size Nand Flash 读取命令,从 Nand 的 off 偏移地 址处读取 size 字节的数据到 SDRAM 的 addr 地址。
常用RGB颜色表 R G B 值 R G B 值 R G B 值 黑色 0 0 0 #000000 黄色 255 255 0 #FFFF00 浅灰...
众所周知,文件系统是Unix系统最基本的资源。最初的Unix系统一般都只支持一种单一类型的文件系统,在这种情况下,文件系统的结构深入到整个系统内核中。而现在的系统大多都在系统内核和文件系统之间提供一个标准的接口,这样不同文件结构之间的数据可以十分方便地交换。
Linux 2.4内核中devfs 创建设备目录: devfs_handle_t devfs_mk_dir(devfs_handle_t dir, const char *name, void info); 创建设备文件: devfs_handle...