随笔分类 -  linux基础

线程变量
摘要:pthread_getpecific和pthread_setspecific实现同一个线程中不同函数间共享数据的一种很好的方式。#include#include#includepthread_key_t p_key;void func1(){ int *tmp = (int*)pthread_ge... 阅读全文

posted @ 2014-12-11 09:28 kangbry

生成者消费者(线程同步,互斥,条件变量)
摘要:#include #include "stdio.h"#include #include #define N_CONSUMER 3 //消费者数量#define N_PRODUCER 2 //生产者数量#define C_SLEEP 1 //控制 consumer 消费的节奏#define P_SL... 阅读全文

posted @ 2014-11-05 20:50 kangbry

共享内存生产者消费者
摘要:ipc.h#pragma once#ifndef _ipc_h#define _ipc_h#include #include #include #include #include #include #include#define BUFSZ 256//建立或获取ipc 的一组函数的原型说明int P... 阅读全文

posted @ 2014-11-04 02:04 kangbry

ipcs,ipcrm,netstat,tcpdump
摘要:取得ipc信息:ipcs [-m|-q|-s]-m 输出有关共享内存(shared memory)的信息-q 输出有关信息队列(message queue)的信息-s 输出有关“遮断器”(semaphore)的信息%ipcs -m删除ipcipcrm -m|-q|-s shm_id%ipcrm -m... 阅读全文

posted @ 2014-11-02 22:48 kangbry

线程取消
摘要:一个线程可以调用pthread_cancel来取消另一个线程。被取消的线程需要被join来释放资源。被取消的线程的返回值为PTHREAD_CANCELED 有关线程的取消,一个线程可以为如下三个状态: 1) 可异步取消:一个线程可以在任何时刻被取消。 2) 可同步取消:取消的请求被放在队列中,直到线... 阅读全文

posted @ 2014-10-30 21:53 kangbry

共享内存和信号量
摘要:1) 获取信号量标识符 int semget(key_t key, int nsems, int flag)2) 操作信号量(初始化,删除等) int semctl(int semid, int semnum, int cmd, /*union semun*/)3) 对信号量进行增减操作,在该操作是... 阅读全文

posted @ 2014-10-29 22:31 kangbry

linux共享内存
摘要:1) 创建共享内存int shmget(key_t key ,int size,int shmflg)key标识共享内存的键值:0/IPC_PRIVATE。当key的取值为IPC_PRIVATE,则函数shmget将创建一块新的共享内存;如果key的取值为0,而参数中又设置了IPC_PRIVATE这... 阅读全文

posted @ 2014-10-27 23:41 kangbry

关于SIGPIPE信号
摘要:在linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。这个信号的缺省处理方法是退出进程,大多数时候这都不是我们期望的。因此我们需要重载这个信号的处理方法。调用以下代码,即可安全的屏蔽SIGPIPE:signal... 阅读全文

posted @ 2014-10-27 21:58 kangbry

valgrind内存检测
摘要:valgrind--tool=memcheck ./程序名memcheck工具可以保证我们正确的内存使用。不加其他参数,valgrind会打印出调用call和malloc的一个概括信息valgrind --leak-check=full ./程序名如果alloc和free的数目不同,你需要用选项--... 阅读全文

posted @ 2014-10-20 23:31 kangbry

条件变量函数
摘要:#include #include #include pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;/*初始化互斥锁*/pthread_cond_t cond = PTHREAD_COND_INITIALIZER;/*初始化条件变量*/void ... 阅读全文

posted @ 2014-10-16 22:45 kangbry

互斥量函数
摘要:一、互斥锁互斥锁,是一种信号量,常用来防止两个进程或线程在同一时刻访问相同的共享资源。需要的头文件:pthread.h互斥锁标识符:pthread_mutex_t(1)互斥锁初始化:函数原型: int pthread_mutex_init (pthread_mutex_t* mutex,const ... 阅读全文

posted @ 2014-10-16 22:44 kangbry

信号量函数
摘要:信号量函数int sem_init(sem_t *sem,int pshared,unsigned int value);sem_init初始化一个信号量,注意pshared表示允许几个进程共享该信号量,一般设0用于进程内的多线程共享,要看是否支持进程共享,value代表信号灯个数int sem_d... 阅读全文

posted @ 2014-10-16 22:12 kangbry

linux内存函数
摘要:LinuxC语言内存分配函数 1、void *alloca(size_t size),用来配置size个字节的内存空间,和mallac/calloc不同的是,alloca是从栈空间(stack)中配置内存,因此在函数返回时会自动释放此空间。int *a; a = (int *)alloca(size... 阅读全文

posted @ 2014-05-08 18:02 kangbry 阅读(425) 评论(0) 推荐(0)

linux线程管理
摘要:线程原语:pthread_attr_init 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化pthread_attr_... 阅读全文

posted @ 2014-05-05 13:40 kangbry

linux进程管理
摘要:fork 系统调用是创建一个新进程的首选方式,fork的返回值父进程返回0,子进程返回父进程idexit 正常退出进程 waitpid 不阻塞等待进程结束atexit 注册终止函数getpid 返回进程IDabort 产生SIGABRT信号,异常终止进程exec 用一个全新的程序替换当前进程的正文 ... 阅读全文

posted @ 2014-05-04 22:15 kangbry 阅读(124) 评论(0) 推荐(0)

linux 编程基本概念
摘要:1 文件 文件是linux最基本和重要的抽象, 一个打开的文件通过唯一的描述符进行引用,该描述符是打开文件的元数据至其本身的映射. 2 普通文件 文件通过信息接点来访问,inode使用唯一的数值进行标志,一个inode存储文件关联的元数据,如它的修改时间戳,所有者,类型,长度以及文件的数据的地址,... 阅读全文

posted @ 2014-05-04 21:50 kangbry 阅读(143) 评论(0) 推荐(0)

守护进程
摘要:守护进程: 也就是通常说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.它可以在Linux系统启动时从启动脚本/etc/rc.d中启动,可以由作业规划进程crond启动,还可以由用户终端(通常是shell... 阅读全文

posted @ 2014-04-13 20:23 kangbry

linux基础 环境和shell变量
摘要:系统提供了一些s h e l l变量。s h e l l变量可以保存诸如路径名、文件名或者一个数字这样的变量名。s h e l l将其中任何设置都看做文本字符串。两种变量,本地和环境。变量的命名需要遵守什么规则?1、变量和变量的内容用"="来连接2、等号两边不能直接解空格字符,如果接上了空格,这时候shell会把变量当作命令尝试执行,而找不到就会提示错误3、变量名称只能是英文字符和数字和下划线,同时数字不能是开头字符。4、若有空格字符,可以使用双引号或者单引号将内容结合起来。但是要注意,双引号内的变量可以保持变量的特性,单引号内的仅仅是一般字符。5、必要时候以转义字符&qu 阅读全文

posted @ 2014-03-27 21:23 kangbry

linux基础 登录环境
摘要:http://bbs.chinaunix.net/thread-1820174-1-1.html登录系统时,在进入命令提示符前,系统要做两个工作。键入用户名和密码后,系统检查是否为有效用户,为此需查询/ e t c / p a s s w d文件。如果登录名正确并且密码有效,开始下一步过程,即登录环境。登陆流程1、先找出/etc/passwd里面是否有这个帐号?如果没有则退出,如果有,将该帐号对应的UID(User ID)与GID(Group ID)读出来,同时读取shell设置和家目录。2、核对密码表,查看对应的/etc/shadow文件的设置是否和输入的密码一致。3、在上一步成功执行的情况 阅读全文

posted @ 2014-03-27 21:22 kangbry

linux基础 文件安全与权限
摘要:http://bbs.chinaunix.net/thread-438660-1-1.html 一, 文件权限位 当创建一个文件的时候,系统保存了有关该文件的全部信息,包括: " 文件的位置。 " 文件类型。 " 文件长度。 " 哪位用户拥有该文件,哪些用户可以访问该文件。 " i节点。 " 文件的修改时间。 " 文件的权限位。 9个权限位。可以设定用户对文件的访问权限 前三位,文件属主、写中间三位,组用户最后三位,其他用户r 读权限w 写/更改权限 x 执行该脚本或程序的权限文件类型有七种 d 目录。 l 符号链接(指向另 阅读全文

posted @ 2014-03-19 23:35 kangbry

导航