自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

取而代之的专栏

菜鸟开始写博客

  • 博客(67)
  • 资源 (4)
  • 收藏
  • 关注

转载 VC6.0中友元函数无法访问类私有成员的解决办法

举个例子:?12345678910111213141516171819202122232425262728293031

2012-09-17 15:05:37 2332

原创 linux 设置环境变量

临时的环境变量:主要使用export命令来导入到/etc/environment.例如,下面的这条命令是将系统的初始的环境变量导进去。export PATH="/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin"永久的环境变量就要通过修改vim ~/.bashrc来解决。在bashrc的最后一行,添加export

2012-09-10 21:24:06 696

原创 unix环境高级编程中代码运行问题

很多人怀着崇拜的心情买来这本书之后,就急切想运行书中的代码,但一定会遇到报错。一年多之前我也遇到过这个问题,一直觉得麻烦没有去解决,但是现在书在手中,总要开始练习书中的代码才好。编辑器就用最简单的vim。首先使用Wget从书的官网下载源码,下载到当前目录的操作是:wget http://www.apuebook.com/src.tar.gz然后是解压缩到当前目录:

2012-06-05 18:49:03 1939 2

原创 STL中分解字符串函数strtok

char *strtok(char *s, const char *delim);分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为\0字符。在第一次调用时,strtok()必需给予参数

2012-05-04 17:44:34 2169

原创 Linux套接字

套接字是一种通信机制,凭借这种机制,客户/服务器系统的开发工作既可以在本地单机上进行,也可以跨网络进行。套接字的特性有三个属性确定,它们是:域(domain),类型(type),和协议(protocol)。套接字还用地址作为它的名字。地址的格式随域(又被称为协议族,protocol family)的不同而不同。每个协议族又可以使用一个或多个地址族定义地址格式。1.套接字的域域指定套接字

2012-05-04 09:40:42 13032

原创 linux 消息队列

消息队列提供了一种在两个不相关的进程之间传递数据的相当简单且有效的方法。与命名管道相比,消息队列的优势在于,它独立于发送和接收进程而存在,这消除了在同步命名管道的打开与关闭的可能产生的一些困难。Linux系统有两个宏定义MSGMAX和MSGMNB,它们以字节为单位分别定义了一条消息的最大长度和一个队列的最大长度。#includeint msgctl(int msgid , int cm

2012-05-03 09:09:19 6022

原创 Linux共享内存

共享内存是有IPC为进程创建的一个特殊的地址范围,它将出现在该进程的地址的空间中。共享内存使用的函数类似与信号量的函数,它的定义如下:#includevoid *shmat(int shm_id , const void *shm_addr , int shmflg);int shmctl(int shm_id ,  int cmd , struct shmid_ds *buf);

2012-05-02 10:22:48 1507

原创 linux 信号量、共享内存、和消息队列

Linux的信号量机制#includeint semctl(int sem_id , int sem_num , int command , ...);int semget(key_t key , int num_set , int sem_flags);int semop(int sem_id struct sembuf *sem_ops , size_t num_sem_ops

2012-05-02 09:40:36 2473

原创 Linux进程间通信:管道(把管道用作标准输入和标准输出)

#includeint dup(int file_descriptor);int dup2(int file_descriptor_one , int file_descriptor_two);dup调用的目的是打开一个新的文件描述符,这与open调用有点类似。不同之处是,dup调用创建的新文件描述符与作为它的参数的那个已有文件描述符指向同一个文件(或管道)。dup2它所创建的新文件描述符

2012-04-24 16:30:15 5477

原创 进程间通信(PIPE调用)

看过了高级的popen调用之后,我们来了解一下底层的pipe函数。popen函数用过启动一个shell来解释请求的命令。而pipe不需要启动shell来解释。#includeint pipe(int file_descriptor[2]);pipe函数的参数是一个由两个整数类型的文件描述符组成的数据的指针。该函数是数据中填上两个新的文件描述符后返回0.如果失败则返回-1并设置er

2012-04-23 19:32:10 3873

原创 进程间的通信:管道

可能是最简单的两个程序之间传递数据的方法就是使用popen和pclose函数了。#incldueFILE *popen(const char *command , const char *open_mode);int pclose(FILE *stream_to_close);1.popen函数允许一个程序将另一个程序作为新进程来启动,并可以传递数据给它或者通过它接收数据。comm

2012-04-23 19:11:25 1008

原创 POSIX线程多线程例子

#include #include #include #include #define NUM_THREADS 6void *thread_function(void *arg);int main() { int res; pthread_t a_thread[NUM_THREADS]; void *thread_result; int lots_

2012-04-22 14:48:27 1092

原创 POSIX线程(4)线程的属性

UNIX 在线程上面还有一个叫线程属性的概念。容许创建线程进程访问或者是改变线程的属性。线程属性有下面几个方面:                            作用域(scope)                       决定线程优先级范围,进程内还是系统范围。

2012-04-22 14:36:27 740

原创 POSIX线程(3)互斥量同步

#includeint pthread_mutex_init(pthread_mutex_t *mutex , const pthread_mutexattr_t *mutexattr);int pthread_mutex_lock(pthread_mutex_t *mutex);int pthread_mutex_unlock(pthread_mutex_t *mutex);int pt

2012-04-22 14:31:28 573

原创 posix 线程(2)信号量同步

#includeint sem_init(sem_t *sem , int pshared , unsigned int value);这个函数初始化有sem指向的信号量对象,设置它的共享选项,并给它一个初始化的整数值。pshared参数控制信号量的类型,如果其值为 0,就表示这个信号量是当前进程的局部信号量。否则这个信号量就可以在多个线程之间共享。#includeint se

2012-04-22 14:25:39 961

原创 posix线程(1)

当在进程中创建一个新线程时,新的执行线程将拥有自己的栈(因为也拥有自己的局部变量),但与它的创建者共享局部变量,文件描述符,信号处理函数和当前目录状态。#includeint pthread_creat(pthread_t *thread , pthread_attr_t *attr , void *(*start_routine)(void *) , void *arg);这个

2012-04-22 14:15:23 728

原创 Linux一个健壮的信号接口

Linux提供了一个更见健壮的信号接口:sigaction。#includeint sigaction( int sig, const struct sigaction *act , struct sigaction *ocat);sigaction结构定义在文件signal.h中,它的作用是定义在接收到参数sig指定的信号后应该采用的行动。该结构至少应该包含一下以下几个成员

2012-04-21 17:25:29 816

原创 Linux 信号

信号是unix和Linux系统相应某些条件而产生的一个事件。接收到信号的进程会相应的采取一些行动。信号   值  处理动作 发出信号的原因----------------------------------------------------------------------SIGHUP 1     A  终端挂起或者控制进程终止SIGINT 2     A

2012-04-21 16:55:10 633

原创 Linux 进程与信号

Linux和Unix一样,有一个虚拟内存系统,能够把程序代码和数据以内存页面的形式放到硬盘的一个区域中,所以Linux可以管理的进程比物理内存所能容纳的要多得多。进程表查看进程ps -efTTY 一列显示了进程是从那个终端启动的。TIME一列是进程到目前为止所占用的CPU时间。CMD一列显示启动进程使用的命令。STAT一列用来表明进程的当前代码。STAT代码解释

2012-04-21 16:28:46 805

原创 使用c语言访问mysql

用c语言连接MYSQL数据库包含两个步骤:1.初始化一个链接句柄结构;2.实际进行连接首先,使用mysql_init来初始化连接句柄:#includeMYSQL *mysql_init(MYSQL *);通常你传递NULL给这个例程,它会返回一个指向新分配的连接句柄结构的指针。如果你传递一个已有的结构,它将被重新初始化,这个例程在出错是返回NULL。目前为止,你知识

2012-04-20 16:16:16 5531

原创 linux dbm数据库

大多数主流的Linux发行版都会默认安装gdbm,但在一些发行版中,你可能需要使用软件包管理器来安装相应的开发库。例如,在ubuntu中,你可能需要使用Synaptic软件包管理器来安装libgdbm-dev软件包,因为它一般不会被默认安装。dbm的数据块datum是一个用typedef语句定义的类型。它至少包含下面两个成员:void *dptr;size_t dsize;

2012-04-20 14:47:50 6154

原创 LINUX文件锁定

linux下文件锁定有两种:一种是以原子操作方式创建锁文件;另一种是允许锁定文件的一部分,从而独享对这一部分内容的访问。    1、锁文件    许多应用程序只需要能够针对某个资源创建一个锁文件,然后其他程序通过检查这个文件来判断它们是否被允许访问这个资源。创建锁文件使用fcntl.h头文件定义的open系统调用,并带上O_CREAT和O_EXCL标志。这样就以原子操作完成两项工作

2012-04-19 16:46:10 6912 2

原创 linux termios结构

termios 结构是在POSIX规范中定义的标准接口,它类似于系统V中的termio接口,通过设置termios类型的数据结构中的值和使用一小组函数调用,你就可以对终端接口进行控制。可以被调整来影响终端的值按照不同的模式被分为如下几组:1.输入模式2.输出模式3.控制模式4.本地模式5.特殊控制模式最小的termios结构的典型定义如下:struct term

2012-04-08 02:09:13 31741 4

原创 LINUX终端编程

如果想知道标准输出是否被重定向了,只需要检查底层的文件描述符是否关联到了一个终端即可。系统调用isatty就是用来完成这个任务的。你只需要将有效的文件描述符传递给它,它就能判断是否连接到了一个终端。#include #include #include char *menu[] = { "a - add new record", "d - delete record"

2012-04-08 01:57:34 4043 1

原创 linux关于用户信息的编程

Linux对每一个用户都提供了一个uid,我们从uid开始来说说用户信息。uid有自己的类型,uid_t,它定义在头文件sys/types.h中。它通常是一个小整数。有些UID是系统预定义的,其他的则是系统管理员在添加心用户时创建的,一般情况下,uid都大于100。#include#includeuid_t getuid(void);char *getlogin(void)

2012-03-30 14:33:44 843

原创 linux临时文件

很多情况下,程序会利用一些文件形式的临时存储手段。用tmpname函数可以生成一个唯一的文件名。#includechar *tmpname( char  *s)tmpname函数返回一个不与任何已存在的文件名同名的有效文件名,如果字符串s不为空,文件名也会写入它。对tmpname的后续调用会覆盖存放返回值的静态存储区。如果需要立刻使用临时文件,你可以用tmpfile函数在给

2012-03-30 14:09:00 5140

原创 Linux 时间和日期相关编程

所有的unix系统都使用同一个时间和日期的起点:格林尼治时间(GMT)1970年1月1日午夜0点时间通过一个预定义的类型time_t来处理,在linux系统中,它是一个长整型。包含在time.h中。#includetime_t time(time_t *tloc);通过time函数可以得到底层的时间值,它返回的是从纪元开始至今的秒数。如果tloc不是一个空指针,time函数还会把返

2012-03-30 11:59:25 820

原创 linux环境有关编程(3)

environ 变量#includeextern char **environ;#include #include extern char **environ;int main(){ char **env = environ; while(*env) { printf("%s\n",*env); env++; }

2012-03-30 11:38:06 477

原创 linux环境有关编程(2)

C语言通过putenv和getenv函数来访问环境变量。#includechar *getenv(const char *name);int putenv(const char *string);环境是由一组格式为“名字=值”的字符串组成。getenv函数以给定的名字搜索环境中的一个字符串,并返回与该名字相关的值。如果请求不存在,就返回NULL。由于getenv返回的字符串

2012-03-30 11:34:55 508

原创 linux环境有关编程(1)

getopt(分析命令行参数)   #include   int getopt(int argc,char * const argv[ ],const char * optstring);  extern char *optarg;  extern int optind, opterr, optopt;  函数说明 getopt()用来分

2012-03-30 11:12:37 468

原创 C标准I/O库

在这个帖子中,我们将要介绍I/O库中的下列库函数。fopen、fclosefread、fwritefflush-fseek-fgetc 、getc 、getcharfputc 、putc 、putcharfgets 、getsprintf 、fprintf 、sprintfscanf 、fscanf 、sscanf首先是fopen函数。fopen函数的函数原型如下:#

2012-03-21 15:08:47 827 1

原创 linux 底层文件访问(库函数)

write系统调用#include#includeint main(){ if( (write(1,"here\n",6) !=6)) { write(2,"WRONG",5); } exit(0);}read系统调用#include#includeint

2012-03-17 21:36:26 1068

转载 PHP页面之间传递参数的四种方式

假设我们定义page01.php和 page02.php两个php文件,将page01中的内容想办法传递到page02,然后供我们继续使用。第一种:使用客户端浏览器的cookie。cookie很容易理解,就是一个临时文件,可以把它看成一个储藏室,浏览器在浏览的过程中记录一些信息,就暂时存放在 这里。在page01中设置一个cookie。       setcookie('myc

2012-03-13 11:48:43 735

原创 sae mysql select 操作

不会读文档,不会看书。只会照着现有的代码写哦。。。。蠢货编译我在sae中创建的一个imgstore表。imgstore表的结构如下$mysql = new SaeMysql();$mysql->setCharset(GBK);$sql = "SELECT * FROM `imgstore`";$line = $mysql->affectedRows($sql);$data

2012-03-10 12:07:55 5403

转载 windows设置系统时间

#include int main (){ SYSTEMTIME st; memset(&st, 0, sizeof(st)); st.wYear = 2012; st.wMonth = 3; st.wDay = 10; st.wHour = 10; st.wMinute = 10; st.wSecond = 10;

2012-03-10 00:31:28 743

原创 sae mysql 插入数据

<?php$mysql = new SaeMysql();$mysql->setCharset(GBK);$sql = "insert into imgstore values('zqa随风飞','lovext爱的')";$mysql->runSql( $sql );if( $mysql->errno() != 0 ){ die( "Error:" . $mysql->errm

2012-03-09 18:36:36 3393

转载 SAE MYSQL 连接实例(创建一个表)

转载地址在SAE中访问MySQL示例代码:$con = mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);用户名  : SAE_MYSQL_USER密  码 : SAE_MYSQL_PASS主库域名 : SAE_MYSQL_HO

2012-03-09 17:10:27 8338 2

转载 新浪SAE中MySQL的连接

转载地址:点击打开链接在用新浪SAE做一个Jquery的微博,但是MySQL的连接一直有问题。因为没有用新浪SAE提供的基于mysql模块的SaeMysql类,只是用MySQL的connect新浪那边提供的MySQL连接信息:Host: $_SERVER['HTTP_MYSQLPORT'].mysql.sae.sina.com.cnPort: $_SER

2012-03-09 17:00:43 8301 1

原创 centos 上搭建VSftp

1.下载好vsftp2.makemake installcp vsftp解压目录/vsftpd.conf /etc/允许本地用户登录FTP需拷贝vsftpd.pam文件cp RedHat/vsftpd.pam /etc/pam.d/ftp 3.修改vsftpd.conf接受匿名用户 :anonymous_enable=YES 接受

2012-03-04 22:32:19 952

原创 samba服务器的安装

yum –y install samba将系统用户zengqu加入到samba用户数据库中。 smbpasswd –a zengqu输入密码:123456

2012-03-04 22:31:16 457

linux IO操作

自己整理的Linux下面的IO操作.里面详细介绍了IO操作的各个函数。

2013-03-26

Unix与Linux.Shell编程

Unix和Linux 上的shell编程文档,非常有用,各种命令将的很详细。

2013-03-26

国内外主流的开源镜像站

国内外主要的开源镜像的地址,方便大家下载Linux及其他开源软件。

2013-03-26

计算机几何 ACM 的算法

这个是ACM 的基础的算法,大家不下载不行啊

2011-04-19

空空如也

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

TA关注的人

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