- 博客(18)
- 资源 (34)
- 收藏
- 关注
转载 sqlite3_get_table()
{ sqlite3 *db; char *errmsg=NULL; //用来存储错误信息字符串 char ret=0; int my_age=0; //类型根据要提取的数据类型而定 char **dbResult; int nRow=0, nColumn=0; //nRow 查找出的总行数,nColumn 存储列 ret = sqlite
2017-05-31 10:27:57 1129
转载 gcc:预处理语句#if、#elif、#else、#endif等
【本文摘自】: 作者:清林,博客名:飞空静渡;#if语句#if语句会计算它后面的表达式,并检查表达式的结果,如果结果为真(true),就编译后面的语句,如果为假(false),就不编译后面的语句。例如: #if COUNT char *desc = "The count is non-zero"; #endif
2017-05-17 17:50:23 1469
转载 Source Insight基本使用和快捷键
Source Insight基本使用和快捷键 为什么要用Source Insight呢?貌似是因为比完整的IDE要更快一些,比较利于查看大量的代码。 软件的安装很简单,设置好安装目录。 配置好文档路径,当然这个也可以在Options里面改,选Options->Preferences…里面的Folders标签就行。 Project的建立和工作区域 在菜单中选
2017-05-10 20:32:23 36396
原创 64G的EXFAT格式的U盘如何格式化为FAT32
64G的EXFAT格式的U盘格式化为FAT32格式方法:买了新的金士顿64g U盘,原来的格式是FAT32,手贱用windows格式化了一下变成NTFS格式了,后来发现手机不支持这个格式,又想改回FAT32格式,但在windows上只能改成EXFAT格式了,尝试了好多办法,最终只找到使用软件“DiskGenius”,格式化U盘才起作用。亲测可用,在这里记录一下,也给大家提供一个方法。
2017-05-10 18:30:53 113455 3
转载 互斥锁mutex的使用方法
在线程实际运行过程中,我们经常需要多个线程保持同步。这时可以用互斥锁来完成任务;互斥锁的使用过程中,主要有pthread_mutex_init,pthread_mutex_destory,pthread_mutex_lock,pthread_mutex_unlock这几个函数以完成锁的初始化,锁的销毁,上锁和释放锁操作。一,锁的创建 锁可以被动态或静态创建,可以用宏PTHRE
2017-05-10 15:53:05 574
转载 pthread_mutex_lock 函数
pthread_mutex_lockpthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_trylock(pthread_mutex_t *mutex); int pthread_mutex_unlock(pthread_mutex_t *mutex); 描述 pthread_mutex_lock(
2017-05-10 15:43:16 13333
转载 自旋锁(spinlock) 解释得经典,透彻
http://blog.csdn.net/unbutun/article/details/5730037自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。 由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。
2017-05-10 15:30:47 615
转载 Linux 2.6内核中新的锁机制--RCU
一、 引言众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速度在成倍地增加,原因很简单,CPU的速度与访问内存的速度差距越来越大,而这种锁使用了原子操作指令,它需要原子地访问内存,也就
2017-05-10 15:29:02 251
转载 自旋锁和互斥锁区别
POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护(另一种常用的同步机制是barrier)。Pthreads提供了多种锁机
2017-05-10 15:22:01 250
转载 pthread_exit()函数
void pthread_exit( void * value_ptr );线程的终止可以是调用了pthread_exit或者该线程的例程结束。也就是说,一个线程可以隐式的退出,也可以显式的调用pthread_exit函数来退出。pthread_exit函数唯一的参数value_ptr是函数的返回代码,只要pthread_join中的第二个参数value_ptr不是NULL,这个值将被传递给v
2017-05-10 15:13:49 57722 2
转载 pthread_join函数
函数pthread_join用来等待一个线程的结束,线程间同步的操作。头文件 : #include 函数定义: int pthread_join(pthread_t thread, void **retval);描述 :pthread_join()函数,以阻塞的方式等待thread指定的线程结束。当函数返回时,被等待线程的资源被收回。如果线程已经结束,那么该函数会立即返回。并且thread
2017-05-10 15:04:34 558
转载 线程同步
读写锁特点:1)多个读者可以同时进行读2)写者必须互斥(只允许一个写者写,也不能读者写者同时进行)3)写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者) 互斥锁特点: 一次只能一个线程拥有互斥锁,其他线程只有等待线程同步:互斥量与读写锁的异同与性能分析线程同步简单的说就是当多个线程共享相同的内存时,当某个线程可以修改变量,而其他线
2017-05-10 11:49:41 248
转载 setsockopt()用法
setsockopt用法详解最近做的一个程序用到了IOCP通信模型,里面用到了setsockopt对套接字进行设置,看源代码的时候最setsockopt函数很不理解,看了msdn以后还是不太明白这个函数的用法,于是就到网上找了一个这个函数的用法,找到了下面的这篇文章,我觉得对setsockopt这个函数讲解的特别号,就转过来了,方便以后的查阅。。1.closesocket(一般不会立即关闭
2017-05-10 10:38:03 546
转载 pthread_create函数详解
函数简介编辑头文件1#include函数声明12int pthread_create(pthread_t *tidp,const pthread_attr_t *attr,(void*)(*start_rtn)(void*),void *a
2017-05-10 10:05:04 46343
转载 内核日志:API 及实现
使用日志进行调试的方法由来已久。日志不仅在理解系统的内部操作方面很有用,而且对于通过时间标记的日志中按时间顺序排列的消息所记录的系统活动的计时和关系也非常有用。本文首先通过介绍用于配置和收集日志信息的应用程序接口(API)来说明了内核的日志(见图 1 关于总结框架和组件的示意图)。然后,本文介绍了日志数据从内核到用户空间的移动过程。最后,本文还介绍了基于内核的日志数据的目标:用户空间中使用
2017-05-09 15:40:01 439
转载 printk实现分析
由于前两天在看netconsole的源码实现中,发现其跟printk的实现机制相关,加之之前一直是很普通的使用printk,从不清楚printk到底是怎样工作的,因此就趁这个机会把printk的实现代码也给大致看了一下,代码流程并不复杂,下面就简要说明一下。 printk在内核中的实现代码如下。 asmlinkage int printk(const char *fmt, .
2017-05-09 09:42:03 497
转载 _vsnprintf 用法
可以和va_start va_end结合使用,实现对参数的合并_vsnprintf,C语言库函数之一,属于可变参数。用于像字符串中打印数据、数据格式用户自定义。函数简介头文件: #include 函数声明: int _vsnprintf(char *buffer, size_t max_count, const c
2017-05-05 09:36:29 731
转载 linux设备驱动程序注册过程详解
Linux的驱动程序注册过程,大致分为两个步骤:模块初始化驱动程序注册下面以内核提供的示例代码pci-skeleton.c,详细说明一个pci设备驱动程序的注册过程。其他设备的驱动代码注册过程基本相同,大家可自行查看。使用的内核代码版本是2.6.38。1. 模块初始化1.1 驱动程序入口所有的设备驱动程序都会有如下两行代码:1922 module_init(netd
2017-05-04 15:43:56 300
man中文手册安装
2013-06-01
Java数据结构和算法
2013-06-01
《Effective Java》英文版
2013-06-01
Effective+Java中文版
2013-06-01
C++ GUI Programming With Qt4(源码).
2012-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人