- 博客(21)
- 资源 (6)
- 收藏
- 关注
原创 MFC CListCtrl可编辑内容
CListCtrl 是一个经常使用的控件,通常用来显示数据库的内容。但是,CListCtrl并不好用。我们当然希望CListCtrl能像Excel那样好用,因此,得在原来的基础上进行改进。一、使CListCtrl能够编辑子项1、在对话框中添加一个CListCtrl控件,并添加CListCtrl类型的变量m_list。2、初始化控件设置控件风格(照抄网上的)L
2014-07-14 16:50:22
1166
原创 win7 64位操作系统配置android开发环境
win7 64位操作系统安装android开发环境1.jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html安装:使用默认安装目录(C:\Program Files\Java),一路next到最后配置环境变量:我的电脑--属性--高级系统设
2014-02-27 19:33:14
1168
原创 ubuntu搭载tftp服务器
1、安装软件包sudo apt-get install tftpd-hpa tftp-hpa其中tftpd-hpa是服务程序,tftp-hpa是客户端。2、修改配置文件vim /etc/default/tftpd-hpa# /etc/default/tftpd-hpaTFTP_USERNAME="tftp"TFTP_DIRECTORY="/home/xxx/
2013-12-16 16:13:13
841
转载 Debug certificate expired on
使用Eclipse调试Android程序,源代码没有错,但总是提示:Error generating final archive: Debug certificate expired on ****从字面了解,是由于Debug证书过期所致。Android的应用程序必须经过开发者自己的自签名证书进行数字签名之后,才能安装到Android系统上。在开发调试阶段,默认情况下,
2013-10-20 16:30:24
542
原创 读取2个或2个以上的I/O时,如何解决一直等待而引起的阻塞问题?
读取两个或者两个以上的I/O,如果使用了阻塞的I/O,如果长时间的阻塞在一个文件描述符上,其他描述符即使有数据也不能够读取出来,如何解决这个问题呢,下面提供集中方案以及他们之间的对比:1、使用多线程或者多进程,以达到隔离用户的目的,但是这会增加系统开销,开辟进程或者线程都会对于内存堆栈等系统资源产生一定的开销;2、使用非阻塞的I/O,当一个I/O不可读是立即返回,去读取下一个I/O,这种方
2013-10-05 15:16:03
1177
原创 网络有关知识
1、简述OSI的物理层,数据链路层和网络层的作用?网络层:通过路由选择协议(路由选择算法)为报文或者分组通过通信子网提供最合适的路径;数据链路层:通过各种控制协议使得有差错的物理通道变为无差错的能可靠传输的数据帧;物理层:利用传输介质为数据帧的传输提供通道,实现比特流的透明传输。2、Internet组播的好处?组播是一种允许一个或多个发送者发送单一的数据包到多个接收者的网络技术
2013-10-03 18:53:42
537
原创 死锁产生的原因及必要条件
产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进
2013-09-22 15:37:24
829
原创 服务器进程fork()两次的原因
作为一个服务器进程,是需要不断运行的,不能够 退出的进程,但是如何保证服务器进程运行过程中不会因为子进程而影响服务器的性能呢?这里来阐述服务器进程父进程创建子进程之后会带来的一些问题,以及如何解决这些问题。服务器进程fork()一次,产生一个子进程,作为工作进程,当这个工作进程运行结束之后,向父进程发送SIGCHILD信号,默认情况下,父进程会忽略这个信号,除非采用signal()信号处理函数
2013-08-26 15:40:01
702
原创 进程的三种状态及转换
操作系统中运行的一个进程具有三个状态:(1) 就绪态(Ready):此时进程获得了除过CPU资源外的所有资源,只要获得了处理机,便会立即执行;(2)执行态(Running):此时程序已经获得了处理机,程序正在运行的状态;(3)阻塞态(Blocked):正在运行的进程由于等待某一个资源而无法继续运行,此时放弃处理机而进入的状态。上图提供了三种状态之间的转换过程:(
2013-08-23 15:09:52
1516
原创 微软面试题 ---求和
输入一个自然数n,求1+2+...+n的值,要求:不能使用乘除,if, else, switch, for, do , while, 三目运算,int func(int n, int *sum){ return n && (*sum += n) && func(n-1, sum);}经典的题目总是耐人寻味,值得思考!
2013-08-22 18:58:44
526
原创 加密字符串问题
输入一个字符串;字符串的前半部分-1,如b,将会变为a;当为a时,输出z;字符串的后半部分+1,如b,将会变为c;当为z时,输出a;字符串的长度若为奇数,中间的那个字符不做变化;
2013-08-18 19:23:39
632
原创 fork产生进程关系
fork()函数在linux中用于创建进程,那么下面这个程序最终除了main函数主进程之外还创建了多少个进程?int main(int argc, char **argv){fork();fork() && fork() || fork();fork(); return 0;}fork()是用来创建一个新的子进程,所以上面的代码共创建了20个进程,除去
2013-08-18 16:47:41
626
原创 折半查找一个有序序列
折半查找也称之为二分法查找,例如某些电视台的购物广告,让观众猜价格的奖品,可以利用折半查找的思想来进行,第一次喊50,主持人会提示高了或者低了,然后在有限的机会次数内猜中价格,赢得奖品,现在我们就来看看计算机中如何进行折半查找的:
2013-08-07 16:19:13
1436
1
原创 几种简单的排序算法
1、冒泡排序(bubble sort ),冒泡排序就是对于一个序列里面的数据元素两两比较,如果逆序,则转换,反之,继续比较。程序代码如下: void swap(int *a, int *b) { int temp = *a; *a = *b;
2013-08-02 21:15:09
498
原创 通过程序来判断系统大小端问题
计算机的存储分为了大端模式(big-endian)和小端模式(little-endian),那么究竟什么是大端模式什么是小端模式呢?二者有什么区别,如何判断一个存储系统是大端模式还是小端模式呢?这里我自己总结了两种方法来判断一个系统存储是大端模式还是小端模式:大端模式是:高位存储低地址,低位存储高地址;小端模式是:高位存储高地址,低位存储低地址;1)、void func()
2013-08-01 15:27:17
832
原创 C语言处理除法和取余操作过程
众所周知,C语言编译器对于除法和取余过程和现实生活中的有差异,例如 3/(-2) = -1, 但是3%(-2) = 1,这是为什么呢?我们都知道在做除法的时候例如让a除以b,商为q,余数为r,那么这个应该满足以下三个条件:1、q*b + r = a2、如果改变了a的正负号,也同时希望改变q的正负号,但是q的绝对值不变化3、当b>0时,我们希望r>=0 且 r 这是小学数学上我们
2013-07-31 17:06:11
6233
原创 C语言对于-0和+0在内存中的表示方法
如题目所示,负数在计算机内存中的表示方法为相反数取反码,再对反码加1,那么对于-0来说就是 0 取反码为 0xFFFFFFFF 在对反码加1,得到 0x00000000,32位最高位舍弃,所以-0和+0在内存中的表示均为0x00000000,(仅表示32位操作系统的内存)以上论述如有错误,欢迎指正
2013-07-31 09:27:58
3979
3
嵌入式软件开发常见面试题
2013-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人