自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(57)
  • 收藏
  • 关注

原创 多线程同步条件变量

最近看《UNIX环境高级编程》多线程同步,看到他举例说条件变量pthread_cond_t怎么用,愣是没有看懂,只好在网上找了份代码,跑了跑,才弄明白 #include #include #include pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;/*初始化互斥锁*/pthread_cond_t cond = PTH

2010-01-15 16:01:00 10100 10

原创 C语言中标志位笔记

 标志位操作:Linux内核、wine、XFree86的代码中都常常能见到一些这样的标志位操作。现在从Linux内核中的do_mount()函数中那些例子来记一下:1949     if (flags & MS_NOEXEC)1950         mnt_flags |= MNT_NOEXEC;1956     flags &= ~(MS_NOSUID | MS_N

2009-11-26 00:21:00 5460 1

原创 函数指针、指针函数以及回调函数

 函数指针和指针函数 函数指针: int func ( ); int (*func) ( );   //指针两侧的括号不能省略,表示先对func解引用,然后再调用相应的函数函数指针是一个指向函数的指针, 其实就是函数,因为ANSI C标准将func ( )认为是(*func)( )的简写形式

2009-11-11 08:46:00 1259 1

转载 Linux 2.6.11内核文件IO系统调用详解

 以前在论坛转过了,这里就不重复了,做为笔记这样的要求可以了:) http://www.longene.org/forum/viewtopic.php?f=5&t=454

2009-11-01 22:13:00 895

转载 Linux Shell 下的输出重定向

 Linux Shell 环境中支持输入输出重定向,用符号来表示。0、1和2分别表示标准输入、标准输出和标准错误信息输出。可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表示将错误信息输出到文件a.txt中。 同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用 2>&1来实现。 Linux下还有一个特殊的文件/dev

2009-10-29 22:19:00 828

原创 Failure [INSTALL_FAILED_OLDER_SDK]

原先在1.6rc1上写的程序,拿到1.5的SDK重新编译后却不能用abd install bin/xxx.apk 安装上去,提示错误是:Failure [INSTALL_FAILED_OLDER_SDK] 找了一下,是这个原因: 打开源码目录下的AndroidManifest.xml文件,然后注释掉或者删除掉这行:      再重新编译,就能安装到低版本

2009-10-22 12:16:00 18660 5

转载 Android JNI实例

andriod的SDK中没有包括JNI的支持,而且对如何支持JNI也没有任何文档说明。不过既然整个android平台是开源的,我们可以通过Google发布的源代码来找到一些线索(比如frameworks/base/media/jni/目录),依葫芦画瓢的实现上层JAVA程序通过JNI来调用Native C程序中的函数。

2009-10-13 20:00:00 6988 1

转载 手工编译C模块

上一篇中(即《Android编译Native C 模块》),我们试用了通过标准的Android.mk文件来编译C模块,下面我们来试试如何直接运用gcc命令行来编译,从而了解Android编译环境的细节。 Clean上次生成的东西:Android编译环境提供了”showcommands”选项来显示编译命令行,我们

2009-10-13 19:48:00 1167

转载 Android编译Native C 模块

Android.mk 代替 Makefile:Android编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才有Makefile文件,而其他的每个component都使用统一标准的Android.mk. Android.mk文件本身是比较简单的,不过它并不是我们熟悉的Makefile,而是经过了Android自身编译

2009-10-13 19:35:00 1222

原创 fcntl设置文件描述符

How would I put my socket in non-blocking mode? From: Andrew Gierth ([email protected]):  Technically,fcntl(soc, F_SETFL, O_NONBLOCK) is incorrect since it clobbers allother fil

2009-10-13 19:01:00 2117

转载 Android 是什么

Android 是什么?Android是一个完整的手机软件平台,包含底层的操作系统(Linux), 中间件以及一些关键应用。 Android还提供了一个SDK 帮助开发者使用Java语言来开发。特性应用框架:提供机制使组件(component)能够被复用和替换Dalvik 虚拟机:为移动设备专门进行优化浏览器:基于Webkit引擎优化的图形库:基于一个定

2009-10-11 22:18:00 858

转载 Shared library "Hello World!" for Android

 Shared library "Hello World!" for Android2007年12月9日This article describes the trace I followed when I managed to compile and run the shared library type of "Hello, world!" for Android. I

2009-10-08 23:25:00 3334

转载 进程间通信之 Unix Domain Socket

原文地址:http://www.linuxgraphics.cn/gui/ipc_unix_socket.html,感谢原作者。 简介GUI 系统中本机的客户/服务器结构通常基于 Unix Domain Socket 来实现。如Xwindow 系统中,X11 客户在连接到 X11 服务器之前,首先根据 Display 等环境变量的设置来判断 X11 服务器所在的主机,如果主

2009-09-28 00:01:00 2839 1

原创 Android

关于如何编译源码,如何运行虚拟机,最后的参考资料就是它的SDk了。下载andorid的SDk后,里面会有文档和sample,把源码编译好后导出tools的目录,就可以了。 不过某防火墙屏蔽了很多有关ANDROID的资料,直接访问的话常常登录不上,可以用在线代理登录网站看我们的想要的资料。 今天小白问了我一些问题,记下来,以帮助同样迷茫的同学。 Arm是什么东西?我们

2009-09-25 00:10:00 832

原创 代码分析:Wine HeapFree 函数

 HeapFree代码位置和生命及参考资料,请参考上一篇:)HeapFree -> RtlFreeHeap这个函数直接调用的就是RtlFrreHeap,前面依然是检查一下参数,判断一下标志位。pInUse = (ARENA_INUSE *)ptr - 1;if (!(subheap = HEAP_FindSubHeap( heapPtr, pInUse ))) goto error;然后用当前I

2009-04-09 00:21:00 2504

原创 代码分析: Wine HeapAllocate 函数

 HeapAllocate()wine-1.0 + [email protected]这里是对堆函数进行一些分析,阅读代码时最好参考wine源码阅读,可以在www.winehq.org 下载到wine的源码。ReactOS的源码在www.reactos.org下载。1 检查HeapAllocate ->

2009-04-09 00:18:00 4175 1

原创 读漫谈WINE的系统结构笔记

读漫谈WINE的系统结构笔记试验环境: Debian + wine 1.0+ vim7.2+ctags联系方式:hongmy525(at)gmail.com2008年12月25日这不是我第一次阅读毛老师的漫谈系列了,不知道是因为太久以前看的,还是以前看的时候没有理解,现在竟然忘记得干干净净,呵呵。其实在毛老师的漫谈中,已经讲得很清楚了,但好记性不如烂笔头,我还是记一下:)概述

2008-12-26 14:19:00 1450

原创 我的vim + ctags + cscope

首先,基础的vim的使用请直接google。第二,vim的安装和配置请参考这篇经典教程:http://blog.csdn.net/wooin/archive/2008/08/28/2844868.aspx再次感谢吴垠。这里是我的vim的配置和一些使用小技巧,贴上来做笔记:)每次都从头象吴垠说的那样配置有些麻烦,我把我的vimrc和插件都保存起来,放在home.vim文件夹下,压缩存放:),要是系统

2008-10-30 17:32:00 8596 3

原创 Debian lenny -- Compile Linux Kernel in Debian

 Debian lenny Compile kernel from sourceInstall Kernel  安装好正常编译需要的东西以后安装这个  # apt-get install build-essential  # apt-get install libncurses5-dev若需要打补丁,还需要安装patch包:  # apt-get install patch  (网上有的文章说什么

2008-09-19 19:55:00 1254

原创 Debian lenny -- Install Soft

 6 INSTALL SOME SOFT6.1. Chinese input,Use fcitx in English version OS:  Install fcitx  #apt-get install fcitx  或者从源码安装:  # apt-get install libxpm-dev  # tar jxf fcitx-3.4.2.tar.ba2 -C /usr/local/  #

2008-09-19 19:49:00 3385

原创 Debian lenny -- Install Drvier

Debian lenny X61 Driver(硬件信息见附录1)5 Install Sound Card Driver5.1.1 let alsa 把你的声卡驱动起来  # apt-get install alsa-base alsa-utils alsa-oss  #alsaconf #一路回车  #cat /dev/urandom > /dev/dsp #测试声音,Ctrl+C终止5.1.2

2008-09-19 19:47:00 2530 1

原创 Debian lenny -- Init

Debian 4.0 (Etch), Debian Testing (Lenny), Debian Unstable (Sid)apt-get与dpkg的基本用法  #apt-get install packagename #安装一个新软件包  #apt-get remove packagename #卸载一个已安装的软件包(保留配置文件)  #apt-get --purge remove pac

2008-09-19 19:42:00 1819

转载 李彦宏在北大2008本科生毕业典礼上的发言

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNormal

2008-07-12 15:15:00 811

转载 深入分析Windows和Linux动态库应用异同

<!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> 深入分析Windows和Linux动态库应用异同摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增

2008-06-30 14:35:00 679

转载 Linux下的多线程编程

<!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> Linux下的多线程编程 本文出自:http://www.china-pub.com 作者: 姚继锋 (2001-08-11 09:05:00) 我看着总结得很好,转过来了

2008-06-30 14:30:00 823

翻译 Wine 中文用户指南 (六)

生词本Binary 可执行文件/二进制文件一个处于机器可执行状态的文件,编译的格式:hex 数据(与源代码相对)。 Distribution 发行版发行版通常是指一些“发行商”(独立软件商)发行操作系统CD光盘的方式(通常在 Linux 的 context 被提及)。Linux 环境能以许多不同的配置发布,例如:发行版可以被创建为适合游戏,适合科学计算应用程序,适合作服务器操作

2008-04-01 16:30:00 2273 2

翻译 Wine 中文用户指南 (五)

第五章 问题捕捉报告 bug内容标签:5.1 如果有些程序仍不能运行怎么办?5.2 如何报告一个bug5.1 如果有些程序仍然不能运行怎么办有些时候您已经尝试了所有的方法, 您甚至费了九牛二虎之力吃尽了苦头绞尽了脑汁,做了这令人恶心的事情,但仍然无助于使一些他妈的该死的程序在一些版本的 Wine 上工作。别泄气,我们在这里要帮助您……(换句话说,您想付出多少银子?)5.1.

2008-04-01 16:28:00 3914

翻译 Wine 中文用户指南 (四)

第四章 运行Wine内容标签:4.1 基础使用:应用程序和控制面板4.2 如何运行wine4.3 类似Explorer的图形化环境变量4.4 wine的命令行选项4.5 环境变量4.6 wineserver命令行选项4.7 设定windows、Dos环境变量4.8 文本程序(CUI:控制用户接口) 本章将描述运行 Wine 的所有方面,例如,基本的 Wi

2008-04-01 16:26:00 6022 1

翻译 Wine 中文用户指南 (三)

第三章 配置wine内容标签:3.1 使用winecfg3.2 使用注册表和注册表编辑器3.3 配置其他东西 最最通常的配置变更可以通过使用 winecfg 工具来达成。我们将经历一个简单的,一步一步的介绍,这个介绍是对 Winecfg 的介绍。并概要的给出可用的设置选项。在下一节我们将看到您可以通过使用 regedit 做出更高级的变更,也提供一个完全的参考给所有的 Wi

2008-04-01 16:24:00 6575 2

翻译 Wine 中文用户指南 (二)

第二章 获取wine内容标签:2.1 wine安装方法2.2 从包安装wine2.3 从源码安装wine2.1 wine安装方法一旦您已经决定 Wine 正合适您的需求,下一步是决定您想怎样安装之。有3种方法安装来自 WineHQ 的 Wine ,每一种都有其优点和缺点。2.1.1 用软件包包安装目前最为容易的安装 Wine 的方法是使用预先打包好的 Wine 的版

2008-04-01 16:23:00 5186

翻译 Wine 中文用户指南 (一)

第一章 介绍内容标签:1.1 概览/关于1.2 什么是wine?1.3 wine的版本1.4 wine以外的选择1.1 概览/关于1.1.1 本文档的目的和目标读者本文档,名为《Wine用户指南》,既是一个简单的安装指南,又是一个扩展性的参考指南。本文适合新的Wine用户,也适合有经验的Wine用户。它以在文档中提供所有配置特性和支持域来提供完全的一步一步的安装和配

2008-04-01 16:22:00 11787

翻译 Wine 中文用户指南 (零)

 Wine 中文用户指南 [2008-04-01]Wine 中文用户指南前言在easywine论坛上已经找到新版的翻译文档,但是很多地方不怎么满意,我这几天正好需要这方面的知识,就对着现在的《wine user guide》翻译和参考easywine论坛上那篇已经翻译好的文章修改了一下,自己花了一点时间,站在前人的肩上完成的,拿出来,希望对英文不好的朋友使用wine时有帮助。(

2008-04-01 16:20:00 2751

原创 反汇编调试简单程序笔记

>http://www.cs.wright.edu/~tkprasad/courses/cs781/alephOne.html----------------------------------------------------------------//sample.c#include #include char largebuff[] = "12341234=

2008-03-12 11:58:00 1240

原创 反汇编看 x=5 的原因

今天在群上看见了下面这样一个程序,说 x 能打印出 0这个值来,刚开始以为是简单的溢出,后面仔细一看和我以前的溢出猜想不一样,虽然这个技术hacker早就熟得都烂了,但是我一直都只是知道原理,没有亲手去调试过,今天提前完成了上班的任务,所以调试一下,使用的工具有gcc,objdump,gdbreturnadress.c#includevoid function(void){    char buf

2008-02-29 19:43:00 1108 1

原创 SCULL简单字符设备驱动

SCULL简单字符设备驱动试验环境: Fedora8+2.6.23内核+vim7.1+lxr Server联系方式:4bsfreedom$gmail.com(替换 $ 为 @ )(不知如何上传附件,相关资料包括源码可发邮件向我索取)2008年01月28日 序言    我的《Linux D

2008-01-31 21:18:00 8777 7

原创 ubuntu,fedora linux下EVA QQ因为验证码不能登录的折衷解决

ubuntu,fedora linux下EVA QQ因为验证码不能登录的折衷解决以前的时候用linux我用两个QQ号,一个在windows下用,一个在linux下用,明显很不方便,但是主要的QQ号码因为需要过验证码不能登录,又不能放弃,没有办法阿。现在好像好点了,在linux能登录,但是在gnome界面下用EVA登录的时候eva图标经常乱飞,而且需要登录几次才能登录上去。最近,问题终于解决了,

2007-11-22 16:47:00 2898 2

原创 伪代码说明Linux进程创建过程

伪代码说明Linux进程创建过程以前单知道linux创建进程用的fork函数,深一点点知道是调用sys_fork系统调用来完成,前阵子看了 安全焦点process写得文章对这个过程的框架有了点点认识,记下来,以后再学到时把它更深入一成的研究。:)Fork --> sys_fork() --> do_fork();这里倒是有点想exec族的系统调用,execve() -> sys_exec(

2007-11-11 17:27:00 1991

转载 windows进程中的内存结构

windows进程中的内存结构 在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识。   接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。   首先,来了解一下 C 语言的变量是如何在内存分

2007-11-05 21:25:00 807

原创 Linux Kernel Architecture Over View(Linux内核结构)

Linux内核体系结构(Linux Kernel Architecture Over View)序言记得几年前我刚刚接触Linux,刚刚听说操作系统内核的概念,想起学习Linux的内核,去阅读Linux内核的源码,但一直到现在,才能走到内核的门口,速度之慢,实在是羞愧难当。这篇文章早就想写了,但是一拖再拖,也想过像那些大牛要写就写有水平的文章,而且一出就出一系列~,现在什么都不管,但是想想

2007-11-05 21:09:00 8587 4

原创 内核编程入门:简析 linux modules

内核编程入门:简析 linux modules            这是篇Linux编程入门级的文章。 1 什么是module?              什么是module?打一个简单的比方,要是把Linux内核比成一个书架,书架上所有的书的内容就是就是内核所提供的功能,那我们每把一本书放进书架就相当于像内核插入一个module。要是插入一本有内容独立的书,

2007-10-19 22:09:00 3446

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除