利用curses库编程开始

curses库常用函数: 注意编译时要用这样的格式:gcc xxx.c -l curses -o xxx 第一个小例子: include #include int main() { initscr(); clear(); move(10,20)...

2013-06-24 00:06:59

阅读数:2208

评论数:0

pwd的实现

#include #include #include #include #include ino_t get_inode(char *); void printpathto(ino_t); void inum_to_name(ino_t, char *, int); int main...

2013-06-23 10:03:11

阅读数:1256

评论数:0

Linux文件系统的的实现:创建一个文件的过程

考虑下面这个命令: who > userlist 当这个命令完成后,文件系统增加l一个存放命令who输出内容的新文件。

2013-06-22 15:17:55

阅读数:1248

评论数:0

ls的实现还不完整

#include #include #include #include #include #include #include #include void do_ls(char *); void do_stat(char *); void show_file_info(char *...

2013-06-22 12:32:57

阅读数:906

评论数:0

cat命令的具体实现代码

#include #include #include #include #define BUFFERSIZE 4096 int main(int argc, char *argv[]) { int fd, fd_tty, n_chars; char buf[BUFFER...

2013-06-21 22:13:59

阅读数:3110

评论数:0

计算机科学中最重要的32个算法

转自:http://www.infoq.com/cn/news/2012/08/32-most-important-algorithms A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出路径。其中使用了一种启发式的估算,为每个节点估算通过该节点的最佳路径,并以之为各个地点排定次序。...

2013-06-21 22:11:39

阅读数:1710

评论数:0

cp命令的实现

#include #include #include #define BUFFERSIZE 4096 #define COPYMODE 0644 void oops(char *, char *); int main(int argc, char *argv[]) { in...

2013-06-21 16:45:30

阅读数:1397

评论数:0

who命令的实现

#include #include #include #include #include #include void show_info(struct utmp *); void showtime(long); int main() { int fd; ...

2013-06-21 15:19:52

阅读数:1589

评论数:0

Linux中more命令的实现

#include #include #include #define PAGELEN 24 #define LINELEN 512 void do_more(FILE *); int see_more(FILE *); int main(int argc, char *argv[]) {...

2013-06-20 22:18:21

阅读数:1810

评论数:0

指针相关。。

2.13 以下的初始化有什么区别?char a[] = "stringliteral"; char *p = "stringliteral"; 当我向 p[i] 赋值的时候, 我的程序崩溃了。 字符串常量有两种稍有区别的用法。用作数组初始值 (如同在 c...

2013-06-19 16:28:29

阅读数:652

评论数:0

POJ3633

[题目大意]: 在一个3*n(0 [输入]: 每一行一个测试数据n,输入-1结束. [输出]: 对每一个测试数据,输出放置方法的种数. Sample Input 2 8 12 -1 Sample Output 3 153 2131 [解题分析]:(来自网上) 1...

2013-06-19 10:17:48

阅读数:786

评论数:0

表达式树

用到了栈,并且递归实现了中序遍历,后序遍历,前序遍历。 同时应该学会union的使用方法。 基础知识: 一、表达式树          表达式树的树叶是操作数(operand),加常数或变量名字,而其他的结点为操作数(operator)。由于这里所有的操作都是二元的,...

2013-06-18 21:30:45

阅读数:14986

评论数:2

利用数组栈将中缀表达式转换成后缀表达式

#include #include #include typedef struct Mystack *Stack; struct Mystack { int Capacity; /* 栈的容量 */ int Top_of_stack; /* 栈顶下标 */...

2013-06-18 11:15:09

阅读数:1514

评论数:0

用栈计算逆波兰式

#include #include #include typedef struct Mystack *Stack; struct Mystack { int Capacity; /* 栈的容量 */ int Top_of_stack; /* 栈顶下标 */...

2013-06-18 00:50:47

阅读数:2478

评论数:1

栈的应用---平衡符号

判断一行字符串输入"各种括号"是否是合法的-----------------------栈用数组实现 如:[()]是合法的(balance) [(])是不合法的(imbalance) #include #include #include typedef str...

2013-06-17 23:23:59

阅读数:2744

评论数:2

C语言中的-------结构

struct point {     int x;     int y; }; 1.关键字struct引入结构声明。struct后面的名字是可选的,称为结构标记(这里为point).结构标记用于为结构命名,在定义之后,结构标记就代表花括号内的声明,可以用它作为该声明的简写形式。 结构体中的变量称为...

2013-06-17 14:07:28

阅读数:1028

评论数:0

Linux驱动开发-----内存存取

1.在用户空间动态申请内存的函数为malloc(),释放函数为free()    对Linux内核而言,C库的malloc()函数通过brk()和mmap()两个系统调用来实现 2.内核空间内存动态申请---以页为单位 (1).kmalloc()和__get_free_pages()申请的内...

2013-06-16 23:27:20

阅读数:1757

评论数:0

内核定时器编程

软件意义上的定时器最终以来硬件定时器来实现,内核在时钟中断发生后执行检测各定时器是否到期,到期后的定时器处理函数将作为软中断在底半部执行。实质上,时钟中断处理程序会唤起TIMER——SOFTIRQ软中断,运行当前处理器上到期的所有定时器。 在LINUX驱动编程中,可以利用Linux内核中提供的一...

2013-06-16 13:48:26

阅读数:1655

评论数:0

设备驱动中异步通知编程

设备驱动中异步通知编程主要用到一项数据结构和两个函数。 1.数据结构------fasync_struct结构体。 2.两个函数    (1)处理FASYNC标志变更的 int fasync_helper(int fd, struct file *filp, int mode, struc...

2013-06-15 22:22:36

阅读数:1242

评论数:0

使用信号实现异步通知机制的例子

include #include #include #include #include #include #define MAX_LEN 100 //信号SIGIO的处理函数 void input_handler(int num) { char data[MAX_LEN];...

2013-06-15 21:20:37

阅读数:1930

评论数:0

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