自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

取而代之的专栏

菜鸟开始写博客

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

原创 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 5524

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

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

2012-04-23 19:32:10 3890

原创 进程间的通信:管道

可能是最简单的两个程序之间传递数据的方法就是使用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 1017

原创 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 1109

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

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

2012-04-22 14:36:27 748

原创 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 588

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

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

2012-04-22 14:25:39 973

原创 posix线程(1)

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

2012-04-22 14:15:23 739

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

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

2012-04-21 17:25:29 828

原创 Linux 信号

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

2012-04-21 16:55:10 645

原创 Linux 进程与信号

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

2012-04-21 16:28:46 818

原创 使用c语言访问mysql

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

2012-04-20 16:16:16 5568

原创 linux dbm数据库

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

2012-04-20 14:47:50 6242

原创 LINUX文件锁定

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

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

原创 linux termios结构

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

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

原创 LINUX终端编程

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

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

linux IO操作

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

2013-03-26

国内外主流的开源镜像站

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

2013-03-26

计算机几何 ACM 的算法

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

2011-04-19

空空如也

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

TA关注的人

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