摘要:
所有C++程序员对析构函数都不陌生,由于其简单且易理解,所以都能很快应用。这里我不说这些常用方法,若不知可参考C++书籍。而我这次所想说的是较微妙的技巧,常不被人注意,但却非常非常的重要。看以下代码: //\\////\\////\\////\\////\\////\\//\\////\\////\\// //Example 1 //author: 袁凯 //date: 2001-09-24 //\\////\\////\\////\\////\\////\\//\\////\\////\\// #include <iostream.h> class CFunction { pub 阅读全文
posted @ 2011-04-05 10:16
super119
阅读(277)
评论(0)
推荐(0)
摘要:
Singleton.hclassA{private:staticA*_instance;protected:A();public:staticA*getInstance();voidsayhello();};Singleton.cpp#include<iostream>#include"singleton.h"usingnamespacestd;A*A::_instance=0;A::A(){}A*A::getInstance(){if(_instance==0)_instance=newA;return_instance;}voidA::sayhello(){ 阅读全文
posted @ 2011-04-05 10:16
super119
阅读(186)
评论(0)
推荐(0)
摘要:
由于Linux对线程实现的一些特殊性,所以会给我们理解线程及其相关的一些函数带来疑惑,这里做个解答: 1、关于sleep 很多书籍上都说sleep这个系统调用会使整个进程sleep,而不单是sleep一个线程。这样说没错,但我们要是在Linux下写一个多线程 的程序,在一个线程中调用sleep,你会发现其他线程照样运行,这是怎么回事呢?这就是由于Linux下的线程,其实线程的注册、销毁等工作是在 pthread库里面,而在内核中,线程其实就是一个进程。Linux对线程的实现是通过__clone调用实现的,这个调用会new多个进程出来,只不 过的是, Linux会设置这些进程的共享内存空间、文件 阅读全文
posted @ 2011-04-05 10:15
super119
阅读(2168)
评论(0)
推荐(0)
摘要:
union和struct的区别在于: 1、对于一个union类型的变量,所有成员变量共享一块内存,该内存的大小有这些成员变量中长度最大的一个来决定 2、union分配的内存是连续的,这一点非常重要。 更具体的看这里,还有测试代码呢(附件1): 那为什么要发明union呢?这是由于union的特性决定的,特别是上述的第二点,因为struct中成员变量虽然内存都是独立的,但是struct不能保证分配的内存是连续的。 举个例子:CPU的ax寄存器分为ah和al两部分,我们现在要给其赋值,就可以采用union: union _ax_register { int i; // 4Bytes, union将 阅读全文
posted @ 2011-04-05 10:13
super119
阅读(2239)
评论(0)
推荐(0)
摘要:
使用popen库函数的版本: #include<unistd.h>#include<stdio.h>#include<stdlib.h>#include<fcntl.h>#include<limits.h>#defineBUFSZPIPE_BUFvoiderr_quit(char*msg);intmain(intargc,char*argv[]){FILE*fp;//FILEstreamforpopenchar*cmdstring="ps-aux|greproot";charbuf[BUFSZ];//createt 阅读全文
posted @ 2011-04-05 10:11
super119
阅读(363)
评论(0)
推荐(0)
摘要:
本文参考了VIM中文用户手册的附录三-“用VIM进行C/C++编程介绍”和第29、30章 一、ctags(有了ctags,可以实现很多强大的编程辅助功能,如下) 可以写入.vimrc文件中的命令有set autowrite 1、ctags,使用了ctags.sourceforge.net上的ctags软件,也是VIM推荐的ctags版本 2、这个ctags用起来很简单,直接ctags -R /usr/include/* 就能生成一个包含所有linux下.h文件的tags文件;使用ctags -R <my develop directory>就能生成自己应用的一个tags文件。一般来 阅读全文
posted @ 2011-04-05 10:11
super119
阅读(1311)
评论(0)
推荐(0)
摘要:
#include<stdio.h>#include<pthread.h>#include<sys/types.h>#include<unistd.h>#include<signal.h>#include<sys/param.h>#include<sys/sysinfo.h>voidcommand_thread(void*arg);voidsetup_daemon();voidmessage_log(char*text);voidcommand_thread(void*arg){charstr_command[1 阅读全文
posted @ 2011-04-05 10:10
super119
阅读(588)
评论(0)
推荐(0)
摘要:
若是在停电之后或是因为其它原因而无法本地开启计算机的时候,你是否想用什么办法过实现远程开机呢? 目前市面上新一代的主板都提供了键盘或鼠标开机、调制解调器唤醒开机和网络唤醒开机等功能,对于网络唤醒开机,由于需要特殊的软硬件支持,加 上一些资料对比介绍很少,因此,使得一些用户在已有硬件支持的情况下不知怎样实现网络唤醒开机。本文将详细说明如何实现网络唤醒开机。 怎样实现网络唤醒开机 如果用户想通过网络唤醒一台指定的计算机,首先需要知道能标识该计算机的身份号。由于被唤醒的计算机处于关机状态,也就没有了IP地址和计算机名字,唯一能标识其身份的只有内部网卡的物理地址,即MAC地址,该地址是唯一的,而且每块 阅读全文
posted @ 2011-04-05 10:06
super119
阅读(1017)
评论(0)
推荐(0)
摘要:
近期做EasyCluster,需要创建用户,要求在Linux上能创建一个用户帐号,很自然想到了后台程序调用useradd命令行来完成,但众所周 知,密码是个麻烦事。查看了 useradd的手册,有个-p password 选项可以在创建的时候就指定密码,但要求这里的密码是已经加过密的,这就要求用crypt函数进行加密,然后再放入命令行。故测试了一下,写了一段测试代 码,用来生成密码: Code: Select all#define _XOPEN_SOURCE#include <stdio.h>#include <string.h>#include <unistd. 阅读全文
posted @ 2011-04-05 10:05
super119
阅读(502)
评论(0)
推荐(0)
摘要:
exec函数组有六个函数,分别是: #include <unistd.h> extern char **environ; int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char *arg, ...); int execle(const char *path, const char *arg , ..., char * const envp[]); int execv(const char *path, char *const argv[]); int exe 阅读全文
posted @ 2011-04-05 10:04
super119
阅读(657)
评论(0)
推荐(0)

浙公网安备 33010602011771号