`
hududumo
  • 浏览: 238532 次
文章分类
社区版块
存档分类
最新评论
文章列表
1. I/O多路转接 如果我们想从多个文件描述符读或写数据,如果我们用以前学过的函数(read,write等)去处理可能会阻塞在一个文件描述符上,不能处理其他的文件描述符。那是因为我们以前学的I/O处理函数,都是阻塞的I/O处理函数,它们的特点是,如果缓冲区里有数据它们就会把数据写到文件中,如果缓存区没有数据他们就会等待(阻塞)直到有数据可读。这就造成了他们无法对多个文件描述符进行操作。而对多个文件描述符进行操作在网络通信方面却是执关重要的。 一种比较好的解决方案就是I/O多路转接技术。它现构造一张有关文件描述符的列表,然后调用一个函数,直到这些描述符中的一个已经准备好进行I ...
Linux下很多程序甚至那些具有图形用户界面(graphical user interface,GUI)的程序,都能接受和处理命令行选项。对于某些程序,这是与其他程序或用户进行交互的主要手段。具有可靠的复杂命令行参数处理机制,会使得您的应用程序更好、更有用。不过很多开发人员都将其宝贵的时间花在了编写自己的命令行解析器,却不使用 getopt(),而后者是一个专门设计来减轻命令行处理负担的库函数。1、命令行参数 命令行程序设计的首要任务是解析命令行参数,GUI派的程序员很少关心这个。这里,我们对参数(argument)采用了一种比较通俗的定义:命令行上除命令名之外的字符串。参数由多项构成,项 ...
本文转载于:http://hi.baidu.com/lyhdq315/blog/item/e2db07c8c2e0f097c8176864.html 我们需要编译出运行在ARM平台上的代码,所使用的交叉编译器为arm-linux-gcc。下面将arm-linux-gcc编译工具的一些常用命令参数介绍给大家。 在此之前首先介绍下编译器的工作过程,在使用GCC编译程序时,编译过程分为四个阶段: 1. 预处理(Pre-Processing) 2. 编译(Compiling) 3. 汇编(Assembling) 4. 链接(Linking) Linux程序员可以根 ...
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中常用得宏定义。。。。。。 1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。
一、exit()函数 函数声明:void exit(int state); exit()函数用于在程序运行的过程中随时结束程序,exit的参数state是返回给操作系统,返回0表示程序正常结束,非0表示程序非正常结束。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。<wbr><br><br> 二、atexit()函数</wbr> ...
摘要:《Linux编程技术详解》第6章的主要内容是设备文件,本小节讲的是使用tcgetattr函数与tcsetattr函数控制终端。 标签:tcgetattr函数控制终端Windows系统LinuxUNIX系统Linux编程技
关于函数 isatty( ) #include <unistd.h> int isatty(int filedes); 返回值:若为终端设备则返回1(真),否则返回0(假) 如下程序,isatty函数的实现只使用了一个终端专用的函数 tcgetattr (如果成功执行,它不改变任何东西),并取其返回值。 #include <termios.h> int isatty(int fd) { struct termios ts; return(tcgetattr(fd,&ts) != -1); /*如果不出错为真(是一个终端设备)*/ } 关于 ...
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> #include <queue> #include <set> #include <vector> using namespace std; const int N=100009; int n,m; int a,b,c,x,y; int len[N]; int get[N]; int vis[N],fa[N]; v ...
最近做数据分析要产生各种报表,于是采用了水晶报表,而其中PUSH模式是我们首选的方案。将过程分享给大家。 我们采用下面的几步使用Push模式执行水晶报表:   1. 设计一个DataSet   2. 创建一个.rpt文件同时将其指定给上一步建立的DataSet。   3. 在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。   4. 在代码中访问数据库并把数据存入DataSet 下面开始具体讲解: 1.新建一个网站工程,如图: 2 在网站工程中添加一个数据集,如图: 3在数据集的页面中右击添加Ta ...
import unittest from main import Sample class SampleTest(unittest.TestCase): def setUp(self): print "create a new Sample" self._sample = Sample("b64e5843ca7db8199c405be565fa7f57") def tearDown(self): print "Destory the sample" sel ...
对于游戏来说,触摸事件是最重要的游戏方式,基本上所有的游戏都是基于触摸事件完成的,不过触摸事件也是游戏最基础的事件反馈。cocos2d-x基本上沿袭cocos2d的触摸事件处理方式,下面就简单介绍一下。 一般来说,每一个游戏场景都有一个或几个Layer组成,把场景分成Layer是为了当游戏的元素增多后方便游戏的管理,这样游戏的扩展性也很强,如果单独在一个Scene中处理整个游戏的元素就显得十分冗杂,而且扩展性差了很多。当然有时候一些很简单的界面还是可以不适用Layer直接进行处理的,当然这样做是不推荐的。如果类不是继承自CCLayer的话,要接受和处理触摸事件要很简单。首先要设置这个类可以接 ...
已经习惯用SQL Prompt很久了,记得最开始用的还是4.0版本,当时我的数据库版本还是sql2005.后来数据库升级到2008,SQL Prompt 被迫升级到5.0,升级过后破解是一个问题,搞了很久才破解。最近数据库升级到sql2012了以前的5.0也不能用了,下了一个SQL Prompt v5.3.0.3 版本的,这次我没有卸掉先前的版本,而是直接升级的。也就是说我没有SQL Prompt v5.3.0.3 的破解文件 我又SQL Prompt v5.0的破解 先装5.0 -》破解-》升级到5.3. 下载地址http://download.csdn.net/detail/dz45693 ...
一般情况下,我们可以用ImageButton来显示一个Button按钮。然而,有些时候我们想按钮的状态发生变化,比如按下前是一个样子,按下后又是另一个样子,Android允许我们改变按钮的形象取决于不同的状态,如按钮是集中或按钮被按下。下面具体讲述如何实现: P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3. 1. 往 Resources里面添加图片 准备三张不同Button状态的图片,然后把它放入“resource/drawable” 。 button_nor ...
JPA多表查询可以使用构造器的方式进行多表查询,以下为多表查询的案例。 本案例中有A、B、C三个对象实体类,对象A、B通过属性imsi关联,对象B、C通过imsig关联; 还有一个Abc类,它是一个用来多表查询时构造集合的普通类。 以下为案例代码 A类 package com.jason.bean; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedV ...
#include<fstream> #include<iostream> #include<cmath> using namespace std; int main() { //ifstream cin("acmilan.txt"); double i,n,count; while(cin>>n) { if(n==0) break; count=0; for(i=0;i<32;i++) { if(pow(2,i)>=n) { count=i; break; ...
Global site tag (gtag.js) - Google Analytics