自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 资源 (11)
  • 收藏
  • 关注

原创 intel inspector xe的VISUAL(EDITOR)变量的设置

我的系统使用Ubuntu 10.04.1,如果直接在/etc/profile里面加入#set VISUAL envVISUAL=/usr/bin/vimexport VISUAL  打开的vim太难看,我写了一个脚本文件#!/bin/bashgnome-terminal -e "vim $1" 然后/etc/profile里面加入的内容改为:#set VISUAL envVISUAL=脚本的绝对路径export VISUAL  这样改错时打开的vim就很漂亮里,不过还有一点就是无法做的

2011-01-24 17:33:00 1415

原创 安装使用Tex

<br />以下操作在Ubuntu10.04下完成:<br /> <br />sudo apt-get install texlive-full<br />sudo apt-get install okular<br />sudo apt-get install kile<br /> <br />安装完成后:<br />如果直接用UTF8,CJKutf8都是乱码的话<br /><br />/usr/share/texmf/tex/latex/beamer/beamer.cls,<br />或/usr

2011-01-05 15:47:00 1209

原创 vim python开发环境配置

<br />http://www.pythonclub.org/python-basic/vim

2011-01-04 11:03:00 1418

转载 解决ubuntu下pdf乱码的问题

<br />ubuntu10.04的pdf已经有了很大的改善,但还是有时会出现乱码的情况,参考以下链接可以解决:<br />http://forum.ubuntu.org.cn/viewtopic.php?f=50&t=131480&start=15

2011-01-04 10:37:00 930

原创 函数栈帧和内存分布笔记

<br /> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --><br />call:函数的调用<br />ret:函数的返回<br /> <br />函数在调用时要做两件事:<br />1、将函数的返回地址保存<br />2、跳转到函数代码的位置处执行<br /> <br />函数在返回时要做两件事:<br />1、取出返回地址<br />2、跳转<br /> <br />函数的栈帧<br />每一

2011-01-01 14:18:00 1537

原创 关于弹出光驱的程序

<br />今天看到《Linux网络编程》那本书的一个光驱弹出的程序,我记得在很早很早的时候,有人就写过不断自动弹出和自动关闭光驱的程序,当时还吓倒不少网民。<br /> <br />其实学过驱动或者学过高级编程的人写这样的程序都很简单,经过我的验证,《Linux网络编程》这本书的例子是有点小问题的,open里面缺少一个O_NONBLOCK。<br /> <br />否则打开会返回失败,errno的为123,查看/usr/include/asm-generic/errno.h发现错误是#defineENOM

2010-12-28 11:51:00 1449

转载 Ubuntu10.04使用Chrome,输入法问题

<br />只要删除后,就必须切换输入法才能输入字,否则打不了字。<br />http://forum.ubuntu.org.cn/viewtopic.php?f=8&t=295899<br /> <br />答案在链接的第7楼。<br /> <br /> 

2010-12-22 19:55:00 1202

原创 多个C文件生成多个目标的makefile

<br />SOURCES=$(wildcard *.c)PROGS=$(patsubst %.c, %, $(SOURCES))all:$(PROGS)$(PROGS):%:%.c gcc $^ -o $@ .PHONY:cleanclean: rm $(PROGS) 

2010-12-21 16:20:00 3502

转载 程序崩溃分析的文章

<br />http://xzpeter.blog.51cto.com/783279/329052

2010-12-21 10:16:00 931

原创 Gedit中文乱码解决办法

<br />http://wiki.ubuntu.org.cn/Gedit%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81

2010-11-27 14:09:00 817

原创 Ubuntu 10.04安装tftp

<br />首先执行:<br /><br />sudo apt-get install tftp-hpa tftpd-hpa <br />然后sodu gedit  /etc/default/tftpd-hpa <br />修改配置文件为:# /etc/default/tftpd-hpa<br />TFTP_USERNAME="tftp"TFTP_DIRECTORY="你的tftp目录"TFTP_ADDRESS="0.0.0.0:69"TFTP_OPTIONS="-l -c -s"<br />注意:tftp

2010-11-09 11:56:00 1116

原创 在Ubuntu上无法通过fcntl设置O_SYNC

<br />如题,看如下测试代码:<br />#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/fcntl.h>#include <stdlib.h>int main(int argc, char *argv[]){ int fd=open("data", O_RDWR|O_CREAT, 0777)

2010-09-19 19:43:00 1652

原创 实现自己的ls

<br />该程序实现的是ls -al<br />#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <grp.h>#include <pwd.h>#include <time.h>#include <string.h>#include <dirent

2010-09-19 19:16:00 1365

原创 关于NULL

<br />看完下面代码估计就明白了<br />#ifndef NULL# if defined __GNUG__ && / (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8))# define NULL (__null)# else# if !defined(__cplusplus)# define NULL ((void*)0)# else# define NULL (0)# endif

2010-08-23 15:41:00 906

原创 linux 内核代码构架图

<br />

2010-08-21 17:48:00 959

原创 文件的读写和上锁

通过使用文件操作,仿真生产者-消费者运行模型。 本实验中需要打开两个虚拟终端,分别运行生产者程序(producer)和消费者程序(customer)。 此时两个进程同时对同一个文件进行读写操作。因为这个文件是临界资源,所以可以使用文件锁机制来保证两个进程对文件的访问都是原子操作。 文件里面就只用一个数字来表示当前的货物数量。文件中的数字最开始初始化为0。且最多容纳9个物品。   //生产者 #include    #include    #inclu

2010-07-07 14:32:00 1848

转载 Ubuntu 10.04安装codeblocks 10.05

<br />http://blog.csdn.net/bruclan/archive/2010/06/27/5696843.aspx

2010-07-05 17:32:00 1044

原创 fork函数

fork函数的作用是创建一个新进程,其原型为: pid_t fork(void); 要使用fork函数必须包含#include fork函数调用一次返回两次,子进程的返回0,父进程的返回子进程的pid,Linux下调用fork函数后。子进程和父进程之间的数据共享方式是写时复制。 看源代码: 多运行几次,注意子进程里面printf("father process id is %d/n", getppid());这句输出的内容,如果main函数先行结束,那么就输出为1,否则输出为m

2010-06-17 21:12:00 925

原创 关于dup2函数

  dup2的功能是复制一个现存的文件描述符,函数原型为: int dup2(int filedes, int filedes2); 相当于: close(filedes2); fcntl(filedes, f_DUPFD, filedes2); 具体代码:

2010-06-15 12:53:00 1198

原创 C++中使用引用来访问new出来的内存

<br />#include <iostream>using namespace std;int main(int argc, char* argv[]){ int &a=* new int[10]; int b[10]={1,2,3,4,5,6,7,8,9,10}; memcpy(&a, b, sizeof(int)*10); for (int i=0; i<10; i++) { cout<<*(&a+i)<<endl; } return 0;

2010-06-13 10:41:00 1119

原创 DM9000接收UDP报文

<br />主要就是在上篇文章中的驱动程序里增加一个read函数。<br />另外在open函数里的iow(0x05, DIS_LONG|DIS_CRC|RXEN);  改为iow(0x05, DIS_LONG|DIS_CRC|RXEN|PRMMC);  <br />其中PRMMC是一个宏:#define PRMMC 1<<1<br /><br /><br />增加的read函数如下:<br />//读取UDP报文static ssize_t dm9k_read(struct file* filp,

2010-06-01 17:58:00 2077 1

原创 DM9000发送UDP报文

DM9000的驱动为:  #include #include #include #include #include #include #include #include #include #include #include #include #include #define DM9K_MAJOR 244 /*预设DM900

2010-05-30 16:43:00 2756 1

原创 ARM开发板(S3C2440)上LED灯驱动及跑马灯的实现

驱动程序的代码为:#include #include #include #include #include #include #include #include #include #include #include #define LED_MAJOR 244 /*预设LED的主设备号*/#define rGPECON (*(vol

2010-05-27 17:30:00 3377

原创 minicom的使用

Linux下的minicom相当于windows下的超级终端,用来和串口通信用的。安装:Ubuntu 下使用如下命令安装sudo apt-get install minicom配置:由于Minicom使用中文配置存在问题,把语言环境改为英文# export LANG=sudo minicom -s       

2010-05-21 18:38:00 894

原创 端口复用的关键代码

#include #include //type为sock的type,addr为已初始化好的sockaddr,alen为addr的长度,qlen为listen的第二个参数//出错返回-1,正确返回listen后的套接字描述符int initserver(int type,const struct sockaddr *addr,socklen_t alen,int qlen){

2010-05-06 11:27:00 791

原创 Linux下的多进程间共享资源的互斥访问

把源代码运行一遍就知道了#include #include #include #include #include #include pthread_mutex_t* g_mutex;//创建共享的mutexvoid init_mutex(void){ int ret; //g_mutex一定要是进程间可以共享的

2010-05-04 19:21:00 9051 1

原创 一个简单的线程池

//threadpool.h#ifndef __THREADPOOL_H__#define __THREADPOOL_H__#include typedef void* (*task_fun)(void*);//用链表来维护等待任务typedef struct threadtask{ //任务的执行函数 task_fun task; //执行

2010-04-28 08:56:00 997

原创 linux线程的优先级设置

linux并不是实时操作系统,把下面的代码运行一遍就能够理解了,代码有很详细的注释。 #include #include #include #include #include #include void * thr_fun(void *arg){ int policy, ret; struct sched_param param; //获取线程调度

2010-04-24 18:12:00 10123 2

原创 关于递归锁

递归锁在同一线程内起作用。//线程属性#include #include #include pthread_mutex_t g_mutex;void test_fun(void);static void thread_init(void){ //初始化锁的属性 pthread_mutexattr_t attr; pt

2010-04-24 13:39:00 4035

转载 IBM开发社区上关于Linux多线程编程的文章

一、POSIX 线程详解1、一种支持内存共享的简捷工具2、称作互斥对象的小玩意3、使用条件变量提高效率二、Posix线程编程指南1、线程创建与取消2、线程私有数据3、线程同步4、线

2010-04-23 14:59:00 1324

原创 多线程的一个小例子

#include #include #include #include #include #include #define THNUM 5pthread_mutex_t g_lock=PTHREAD_MUTEX_INITIALIZER;void* thr_fun(void* arg){ pthread_detach

2010-04-22 15:55:00 888

原创 测试创建和销毁进程开销于创建和销毁线程开销对比

//对比进程创建和线程创建的时间开销#include #include #include #include #include void* thr_fun(void* arg){ pthread_exit(NULL);}int main(int argc, char *argv[]){ struct timeval tv1

2010-04-22 15:51:00 4281

原创 关于pthread_create的手册

要查询pthread_create函数的用法,需要执行以下命令:sudo apt-get install manpages-posix-dev

2010-04-21 19:18:00 683

转载 使用异步 I/O 大大提高应用程序的性能

非常好的一篇文章,推荐!www.ibm.com/developerworks/cn/linux/l-async/

2010-04-21 16:50:00 459

原创 epoll的简单用法示例(程序还有bug,但只是为了示例epoll的用法就不改了)

//epoll用法示例//创建PIPENUM个pipe和子进程,子进程负责写,父进程负责读#include #include #include #include #include #include #include #define PIPENUM 4int fdPipe[PIPENUM][2];int createPipe(void){ int

2010-04-21 11:32:00 729

原创 poll的用法示例(程序还有bug,但只是为了示例poll的用法就不改了)

//创建PIPENUM个pipe和子进程,子进程负责写,父进程负责读#include #include #include #include #include #include #include #define PIPENUM 4int fdPipe[PIPENUM][2];int createPipe(void){ int i, ret; for

2010-04-21 10:21:00 813

原创 利用共享存储实现父子进程间的通信

#include #include #include #include #include #define SHMSIZE 4096*2int main(int argc, char *argv[]){ int shmid=shmget(IPC_PRIVATE, SHMSIZE, IPC_CREAT|0666); if( -1

2010-04-19 11:02:00 836

原创 Linux下利用信号量实现PV操作

假设两个进程(父子进程)对一个文件进行写操作,但是这个文件同一时间只能有一个进程进行写操作。//利用信号量实现pv操作#include #include #include #include #include #include

2010-04-18 20:29:00 4148

原创 利用消息队列实现两个进程之间的文件复制

一个进程负责发送文件,一个进程负责接受文件。//实现文件的拷贝,本进程负责发送数据到消息队列,文件名由命令行参数传递#include #include #include #include #include #include #include #include #define MSGTYPE 100

2010-04-18 16:31:00 2479

原创 使用mmap实现自己的PIPE

程序没有仔细测试,如果有BUG请留言,谢谢!//pipe.h#ifndef __HEAD_H#define __HEAD_H#define BUFSIZE 4000//读写标志typedef enum{ READ, WRITE}RDWRFLAG;//缓冲区和控制标志typedef struct { char buf[BUFSIZE];

2010-04-18 09:34:00 864

Linux内核情景分析(非扫描版)

Linux内核情景分析(非扫描版), 好东西快点下吧。

2010-08-21

Segmentation Fault in Linux —— 原因与避免

Segmentation Fault in Linux —— 原因与避免

2010-08-21

qt4中文教程(word版本)

还不错的一份qt4方面的教程,大概有150多页。

2010-07-18

Linux操作系统分析与实践实验

这是北京大学的Linux操作系统分析与实践课程的实验,部分有答案,全部是pdf格式。

2010-04-18

foxit reader 3.1 注册码

foxit reader 3.1 注册码。

2009-09-29

SQL Sever 2008安装过程图解

SQL Sever 2008安装过程图解,比较详细,对于初学者来说比较不错。

2009-09-28

读取无符号数

1、掌握词法分析的基本思想,并用高级语言编写无符号数的词法分析程序。<br>2、从键盘上输入一串字符(包括字母、数字等),最后以“;”结束,编写程序识别出其中的无符号数。

2008-06-28

逆波兰式的生成

1、掌握语法分析的基本思想,并用高级语言编写逆波兰式生产程。2、利用逆波兰式生成算法编写程序,将从键盘上输入的算术表达式(中缀表达式)转化成逆波兰式。

2008-06-28

空空如也

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

TA关注的人

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