- 博客(27)
- 收藏
- 关注
原创 linux中的内核定时器
<br />今天需要实现一个定时调用函数执行的功能,想到了linux内核中的定时器.<br /> <br />在linux内核中提供了一个结构体struct timer_list,其定义在<linux/timer.h>中:<br /> <br />struct timer_list<br />{<br />struct list_head entry; 定时器链表的入口<br /> <br />unsigned long expires; 以jiffies为单位的定时器<br /> <br />s
2010-11-08 23:09:00
413
原创 C++类模板的编译---2
<br />继续上篇文章继续关注c++类模板的编译.在C++的经典书籍《C++ primer, Fourth Edition》中,作者是在书中有这样一段内容:<br /> <br />"标准C++为编译模板代码定义了两种模型. 在两种模型中,构造程序的方式很大程度是相同的: 类定义和函数声明放在头文件中, 而函数定义<br /> <br />和成员定义放在源文件中. 两种模型的不同在于, 编译器怎样使用来自源文件的定义.如本书所述,所有的编译器都支持第一种模式, 称为“包含”<br /> <br />模型,
2010-10-24 20:28:00
265
原创 C++类模板的编译---1
当我们书写一个C++的模板类的时候,会遇到如下的情况:假设我们定义了一个模板类,包含如下文件:test.h test.cpp main.cpp三个文件.其中test.h中是模板类的声明,test.cpp是模板类的定义,main.cpp是程序的入口.test.htemplate class Test{ ................................};test.cpptemplate Test::Test(){ ...........
2010-10-24 20:06:00
287
原创 linux下使用samba上传文件夹和映射samba目录为windows下的目录以及使用source insight查看Linux工程的问题
<br />刚才朋友遇到了问题,如何在windows下把samba目录映射成windows的一个磁盘,还有就是他的samba为什么不能上传目录.<br /> <br />今天把这连个问题的解决方法写出来,希望遇到同样问题的人,能够提供些帮助.<br /> <br />问题1:如何映射?<br /> <br />首先你要启动你的linux系统,而且正确配置你的samba服务器,把共享目录的权限设置为777.所有的目录都要是可穿透的.<br /> <br />然后,你回到windows下,右击我的电脑,选择“映
2010-09-16 22:45:00
2788
原创 回调函数
<br />什么是回调函数?<br />简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。<br />为什么要使用回调函数?<br />因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为int)的被调用函数。<br />如果想知道回调函数在实际中有什么作用,先假设有这样一种情况,我们要编写一个库,它提供了某些排序算法的实
2010-09-12 21:37:00
282
原创 linux中的struct file结构体和标准C中的struct file结构体有什么区别?
<br /><br />在C语言中,对文件操作的时候,我们要定义一个FILE指针,用来指向打开的文件。这个FILE结构体的定义是这样的:<br />typedef struct file<br />{<br />int level; /* fill/empty level of buffer */<br />unsigned flags; /* File status flags */<br />char f
2010-09-12 20:46:00
1812
原创 Linux中如何添加服务使其开机启动或停止?
init进程是由内核启动的第一个(也是惟一的一个)用户进程(进程ID为1),它根据配置文件决定启动哪些程序.比如执行某些脚本,启动shell,运行用户指定的程序等.init进程是后续所有进程的发起者,比如init进程启动/bin/sh程序后,才能在控制台上输入各种命令.init进程首先通过读取并解析/etc/inittab文件,然后按照这个这个文件创建各种子进程。我们来分析一下/etc/inittab文件:文件中的每一个条目定义格式是这样的::::我们来解释一下各个字段的意思:id:表示这个子进程要使用的控
2010-09-12 19:24:00
1503
原创 vmware下为linux添加一个分区
<br />最近要在linux下安装oracle数据库,由于现在的分区太少了,所以决定添加一块硬盘,准备添加一个14G的硬盘。<br />步骤 如下:<br />1. 在vmware下的vm-->setting下添加一块SCSI硬盘,指定大小为14G<br />2. 用root用户登录后,fdisk -l显示当前下添加了一块硬盘为/dev/sdb<br />3. 为/dev/sdb创建分区:<br /> fdisk /dev/sdb<br /> command(m for help):n 表示
2010-09-05 12:50:00
463
原创 C和C++的混合编程问题
<br />最近在一个项目中,用到了C和C++的混合编程。现在做个总结。<br />C++是C的一个扩展,在C++中提出了类的概念,但是我们可以把它当做是一个结构体,当然是看做,二者还是有区别的。<br />在C中你要调用C++类的对象的时候,你不可以直接使用,那样的话,编译器会报错。<br />你应该这样使用:<br />class Socket<br />{<br />........<br /> <br />};<br /> <br /> <br />在main.c中,假设函数用到了这个对象,你应该先
2010-09-05 11:50:00
322
原创 C语言中库函数不区分大小写比较字符串
<br />C语言库函数提供了可以忽略大小进行比较的函数,这个函数就是<br />int strnicmp(const char *, const char *, __kernel_size_t);<br />在liunx内核中,这个函数是这样实现的:<br /><br />int strnicmp(const char *s1, const char *s2, size_t len)<br />{<br />/* Yes, Virginia, it had better be unsigned */<br
2010-09-05 11:42:00
5205
1
原创 C语言中通过分隔符来截取字符串
<br />最近在工作中要实现这样一个功能:<br />从一个文本文件中按行读取数据,一行数据中每一列都可能含有空格,所以你要把空格给截取出来。列之间是通过TAB键分割的。<br />我在一开始使用了C的库函数strtok这个函数。<br />先介绍一下strtok这个函数原型:<br />char *strtok(char *src, char *flag)<br />参数一是你要截取的字符串,参数2是字符串中的分隔符。<br />看一下linux的man手册是如何结束这个函数的功能的:<br />这个
2010-09-05 11:29:00
4962
原创 C语言字符串中包含分隔符的拆分
<br />最近在工作中要实现这样一个功能:<br />从一个文本文件中按行读取数据,一行数据中每一列都可能含有空格,所以你要把空格给截取出来。列之间是通过TAB键分割的。<br />我在一开始使用了C的库函数strtok这个函数。<br />先介绍一下strtok这个函数原型:<br />char *strtok(char *src, char *flag)<br />参数一是你要截取的字符串,参数2是字符串中的分隔符。<br />看一下linux的man手册是如何结束这个函数的功能的:<br />这个
2010-09-04 23:53:00
5328
原创 linux服务器配置-----tftp
tftp服务:tftp是和xinetd服务有依赖关系的,所以安装tftp的时候,要先安装 xinted服务。范例:/etc/xinetd.d/tftpservice tftp{ disable = yes socket_type = dgram protocol = udp wait
2009-11-22 22:38:00
345
原创 linux服务器配置---vsftpd
vsftp服务器:在/etc/vsftpd目录下共有3个配置文件,它们分别是: ftpusers:它指定了哪些用户账户不能访问FTP服务器,例如root等。 user_list:该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。 vsftpd.conf:它是一个文本文件,我们可以用Kate、Vi等
2009-11-22 22:37:00
264
原创 linux服务器配置---samba
一、Samba简介 给Windows客户提供文件服务是通过samba实现的,凡架设过MS Windows网络的人都知道MS Windows网络的核心是SMB/CIFS,而samba也是一套基于UNIX类系统、实现SMB/CIFS协议的软件,作为UNIX的克隆,Linux也可以运行这套软件。和NT相比较,samba的文件服务功能一点也不亚于NT,效率很高,借助Linux本身,可以实现用户磁盘空
2009-11-22 22:35:00
262
原创 虚拟机上网
在安装好虚拟机后,你可以选择要启动的系统什么方式上网。可以在虚拟机设置窗口中选择你的上网方式。安装虚拟机后,在本地连接中会生成VMware Network Adapter VMnet1,VMware Network Adapter VMnet8,默认VMware Network Adapter VMnet1是通过host-only上网的,VMware Network Adapter VMnet8
2009-11-22 22:34:00
889
原创 JAVA知识----------初始化块
初始化块被用来随着构造方法初始化对象。 初始化块并不在方法或者构造方法内部。 初始化块就是放在一个括号内的一块语句。 看如下代码: public class TestInitialzation{private static int numberOfObjects; private String title; private int id
2009-10-24 16:34:00
217
原创 算法实现之最优装载
import java.util.Arrays;public class TestLoad{//方法:装载/*para:int x[]标记数组,标记该物品是否放入para:int w[]存放各种物品的重量para:int c表示船可以承载的重量para:int n表示物品的种类*/public static void loading(int[] x,int[] w,int c,int n)
2009-10-14 17:54:00
226
原创 Dreamweaver上的flash功能
今天试着使用了Dreamweaver上的flash功能,写出来和大家一起分享。flashpaper:可以在 Web 页中插入 Macromedia FlashPaper 文档。在浏览器中打开包含 FlashPaper 文档的页面时,用户将能够浏览 FlashPaper 文档中的所有页面,而无需加载新的 Web 页。用户也可以搜索、打印和缩放该文档。我是使用了软件flashpaper,安装以
2009-10-13 17:31:00
635
原创 数据结构之单项链表
//定义链表节点struct node{ int num; struct node *next; };#include "stdio.h"#include "stdlib.h"//功能:创建链表struct node *creat(struct node *head){ struct node *p1; struct node *p2; p1=p2=(struct node *)
2009-10-12 22:40:00
276
原创 算法实现:贪心算法之背包问题 (C语言)
#include "stdio.h"//参数:n表示是背包可以存放物品的种类//参数:指针p指向的数组是存放物品价值的数组//参数:指针q指向的数组是存放物品重量的数组static void sort(int n,float *p,float *q){ int i; int j; for(i=0;i for(j=i+1;j if((*(p+i))/(*(q+i)) { float f;
2009-10-12 22:38:00
3015
1
原创 算法实现:最大子段问题(JAVA)
//最大子段问题public class TestMaxSum{public static int[] MaxSum(int n,int[] a,int besti,int bestj){//最优值int[] s=new int[3];int sum=0;for(int i=0;i{//当前最大值int currentSum=0;for(int j=i;j{currentSum+=a[j];
2009-10-12 22:37:00
250
原创 算法实现:消去递归的分段排序(JAVA)
//算法实现之合并排序public class MergeSort { /** * * 核心排序算法 * @param a: * @param b:是目标数组,把合并后的复制到该数组中 * @param startOfFirst * @param endOfFirst * @param endOfSecond */ public static void merge(int
2009-10-12 22:36:00
228
原创 算法实现:快速排序(JAVA)
public class QuickSort { public QuickSort() { } /* *核心排序算法 * @param int[] a是一个待排序的数组 * @param p是这个数组中的第一个数的下标 * @param r是这个数组的最后一个数的下标 */ public static int partition(int[] a,int p,int r) { i
2009-10-12 22:30:00
195
原创 算法实现之合并排序(JAVA语言)
public class MergeSort { /** * * 核心排序算法 * @param a: * @param b:是目标数组,把合并后的复制到该数组中 * @param startOfFirst * @param endOfFirst * @param endOfSecond */ public static void merge(int[] a,int[] b,i
2009-10-12 21:46:00
223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人