MySQL C 语言应用程序接口开发教程(1)

关于教程 这是一篇 MySQL 数据库的 C 语言开发教程。它讲述了用 C 语言开发 MySQL 应用程序的基本过程。 关于 MySQL 数据库 MySQL 是一个重要的开放源代码的、多用户的、多线程的数据库管理系统。MySQL 在 Web 应用中很流行。它是非常流行的 LAMP(Linux, Apache, MySQL, PHP) 架构的一部分。MySQL 被瑞典一家名为 MySQL AB 并对开源事业有杰出贡献的公司所有。MySQL 数据库...

作者: ricky_pc 发布时间: 12-22

Linux下pstack的实现

Linux下有时候我们需要知道一个进程在做什么,比如说程序不正常的时候,他到底在干吗?最直接的方法就是打印出他所有线程的调用栈,这样我们从栈再配合程序代码就知道程序在干吗了。 Linux下这个工具叫做pstack. 使用方法是 # pstack Usage: pstack <process-id> 当然这个被调查的程序需要有符号信息。 比较雷人的是 这个程序竟然是个shell脚本,核心实现是gdb的 thread app...

作者: prefect 发布时间: 12-22

strcpy源码

strcpy源码 char *strcpy(char *dest, const char *src) { char *tmp = dest; while ((*dest++ = *src++) != '\0') /* nothing */; return tmp; } 内核实现的strcpy函数如上所示,函数体内只有三行代码,很精简。第一次看到此类函数的源码时有些奇怪,为何不做任何参数检验?若是出错,则可造成进程直接崩掉。网上对于这段代码也有热烈的讨论,对于是否需要参数检验,我也觉...

作者: shenhailuanma 发布时间: 12-21

字符与编码

From here. Just for fun.. ANSI编码 (本地化) GB2312.. 为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。 不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编...

作者: lostyue 发布时间: 12-21

linux下网络收发包之 send recv

从网上摘抄,根据自己的理解整理的 int send( SOCKET s, const char FAR *buf, int len, int flags ); 1 参数 len 大于s的发送缓冲长度(可由setsockopt设置), 返回SOCKET_ERROR; 2 参数 len 小于等于缓冲区长度,发送完正在发送的数据,并查看缓冲区剩余空间大小left a. len > left,等待协议栈发送数据至 len <= left,后同"b" b. len <= left,将数据拷贝至套接字的缓冲...

作者: fireworks2 发布时间: 12-21

中断原理和中断类别

中断是指CPU运行过程中,外设遇到紧急的事物要处理,使得CPU暂停当前指令的执行转去执行中断指令,执行完中断服务程序后又回到当前的指令继续执行。 中断可以分为硬中断和软中断 硬中断是指CPU外设对CPU产生中断。 软中断是指应用程序产生异常,或者人为的产生中断,它是对内核进行中断。 对控制器来说,中断源很多,必须有一个中断控制器来管理这些中断。INTEL8259就是一个...

作者: cjjnjust 发布时间: 12-21

第02章 建立和运行模块

源码代码: 文件: 02.rar 大小: 14KB 下载: 下载 (1) 驱动模块不能使用lib(内核本身应该可以使用C库吧), 只能使用 内核导出的函数.--- cat /proc/kallsyms 有个宏,可以让你的符号进入全局不符号表kallsyms中. 这个宏叫做: 从这个文件中看到的: drivers\usb\core\message.c EXPORT_SYMBOL_GPL(usb_interrupt_msg); EXPORT_SYMBOL(usb_control_msg); (2) 以双下划线(__)开始的...

作者: purple_river 发布时间: 12-21

vector的capacity和reverse成员函数

预备知识: 1.为了使vector容器实现快速的内存分配,其实际分配的容量要比当前所需的空间多一些;vector预留了这些额外的存储区,用于存放新添加的元素。 2.容器的capacity(容量)与size(长度)的区别:size指容器当前拥有的元素个数;capacity指容器在必须分配新存储空间之前可以存储的元素总数。 3.reverse操作告诉vector容器应该预留多少元素的存储空间。 程序清单: #...

作者: longmenyu 发布时间: 12-21

console tty 串口

console tty 串口 http://blog.sina.com.cn/s/blog_6151984a0100ejfg.html 使用的命令: tty 查看使用哪个终端 who 查看登入的用户 w 查看登入的用户 echo "abc" >> /dev/pts/* echo "123" >> /dev/ttyAMA0 不同终端之间信息的传递 当你运行一个程序的时候,此进程一定会对应一个终端,printf打印信息会在终端出现,而当程序进入内核态时(如调用驱动),printk打印信息会在...

作者: purple_river 发布时间: 12-21

Fedora 启动过程

1、从/etc/inittab获取运行级别(runlevel); 2、执行/etc/rc.d/rc.sysinit; 3、执行/etc/rc.d/rc.local(可以再这里加入自启动脚本); 4、执行/bin/login; 以上只是粗略地说一下,其中还有好多详细的还没有列出; 11) 用户登陆后执行的脚本: 执行/etc/profile,这个文件本身会根据不同的用户设置一些环境变量,然后会调用/etc/profile.d/*.sh下的文件,这下面有好多文件,都...

作者: returnx 发布时间: 12-21