
Linux
文章平均质量分 68
qwer_boo
这个作者很懒,什么都没留下…
展开
-
相关函数(暂存)
以下所述服务既可以是十进制端口数值,也可以是ftp,http,domain等。因为不同特定服务对应不同的端口。gethostbyname函数通过查询DNS服务器用主机名来获得主机IPv4地址。#include struct hostent *gethostbyname(const char *hostname);struct hostent{char *h_name; /*o原创 2015-07-22 21:36:59 · 436 阅读 · 0 评论 -
System V 信号灯
1.semget函数创建一个信号灯集或访问一个已存在的信号灯集#include int semget(key_t key, int nsems, int oflags);返回一个信号灯的标识符。nsems指定集合中的信号灯数,如果只是打开一个已存在的集合,则该参数指定为0.创建完一个信号灯集,就不能改变其中的信号灯数。oflags值是SEM_R和SEM_A常值的组合。也可以与IPC原创 2015-08-31 23:03:30 · 742 阅读 · 0 评论 -
linux 线程同步、互斥
#include #include #include #include #define MAXITEMS 10000#define MAXTHREADS 20int nitems;int buf[MAXITEMS];struct{ pthread_mutex_t mutex; int nput; int nval;}put = {PTHREAD_MUTEX_INI原创 2015-08-17 11:38:16 · 481 阅读 · 0 评论 -
pipe练习(暂存)
#include #include #include #include #include #include #include #include #include #define MAXLEN 100void client(int readfd, int writefd){ size_t len; ssize_t n; char buf[MAXLEN]; fget原创 2015-07-24 18:07:51 · 554 阅读 · 0 评论 -
System V 共享内存区
System V共享内存区在概念上类似于Posix共享内存区。代之以调用shm_open后调用mmap的是,先调用shmget,再调用shmatshmget函数创建一个尚未存在的共享内存区,或者访问一个已经存在的共享内存区。#include int shmget(key_t key, size_t size, int oflag);返回值为共享内存区的标识符。key既可以是fto原创 2015-09-01 21:04:05 · 655 阅读 · 0 评论 -
select练习小结
//readwrite.h#include #include #include #include #include #include #include #include #define MAXLEN 1024struct packet{int len;char content[MAXLEN];};size_t read原创 2015-07-10 21:38:17 · 837 阅读 · 0 评论 -
linux线程相关小结
typedef unsigned long int pthread_t;int pthread_create(pthread_t *thread, pthread_attr_t *attr, void*(func)(void*), void *arg);attr为NULL时使用默认属性。线程的退出方式:1.执行完成后隐式退出;2.由线程本身显式调用pthread_exit函数退出;原创 2015-08-17 22:42:21 · 467 阅读 · 0 评论 -
SUID,SGID,SBIT
一个进程的 real user ID【实际用户ID】 是指运行此进程的用户角色的 ID;一个进程的 effective user 【有效用户ID】ID 是指此进程目前实际有效的用户 ID(也就是权限的大小),effective user ID 主要用来校验权限时使用,比如打开文件、创建文件、修改文件、kill 别的进程,等等【表示进程的权限】。SUID【设置用户ID】从程序原创 2015-09-05 18:24:26 · 626 阅读 · 0 评论 -
linux大杂烩
1. mkdir [-mp] dirname-m 直接设置目录权限,无视umask-p 递归创建目录Rmdir –p dirname-p 若指定目录被删除后其上层目录也为空,则递归删除上层目录Rm [–rfi] dirname 用于目录不为空时-r 递归删除-f 强制删除-i 交互2. cp [-alsiru] source destinat原创 2015-09-03 22:50:37 · 1661 阅读 · 2 评论 -
共享内存区
Posix提供了无亲缘关系进程间共享内存区的两种方法:1.内存映射文件 由open函数打开,由mmap函数把得到的描述字映射到当前进程地址空间的一个文件。#include void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset); addr可以指定为描述字fd应被映射到的进程内空间起原创 2015-08-21 19:37:28 · 738 阅读 · 0 评论 -
Posix信号灯
互斥锁是为上锁而优化的,条件变量是为等待而优化的,信号灯既可用用于上锁,也可用于等待,因而可能导致更多的开销和更高的复杂性。Posix.1基本原理一文给出了有了互斥锁和条件变量还提供信号灯的原因:信号灯的主要目的是提供一种进程间同步方式;这些进程可能共享内存也可能不共享内存区。互斥锁和条件变量是作为线程间的同步机制说明的,这些线程总是共享(某个)内存区。但是,互斥锁意图是用于线程同步,原创 2015-08-21 18:01:08 · 604 阅读 · 0 评论 -
读写锁
读写锁和互斥量(互斥锁)很类似,是另一种线程同步机制,但不属于POSIX标准,可以用来同步同一进程中的各个线程。当然如果一个读写锁存放在多个进程共享的某个内存区中,那么还可以用来进行进程间的同步, 和互斥量不同的是:互斥量会把试图进入已保护的临界区的线程都阻塞;然而读写锁会视当前进入临界区的线程和请求进入临界区的线程的属性来判断是否允许线程进入。 相对互斥量只有加锁和不加锁两种状态,读原创 2015-08-21 20:00:41 · 604 阅读 · 0 评论 -
poll之客户端与服务端聊天
poll客户端与服务端聊天原创 2015-07-18 11:52:12 · 614 阅读 · 0 评论 -
epoll处理多连接
#include #include #include #include #include #include #include #include #include #include #include #define MAXEVENTS 1024#define BUF_SIZE 100//set this descriptor non blockingstatic in转载 2015-07-20 16:25:09 · 1095 阅读 · 0 评论 -
linux解压命令
linux解压命令 来源: ChinaUnix博客 日期: 2007.12.16 15:36 (共有条评论) 我要评论 转tar命令 tar 可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU转载 2010-09-04 22:35:00 · 984 阅读 · 0 评论 -
C++常用函数
///////十六进制转char。。。。 inthexToChar(string &value, char *buf, int &bufLen) { // ACE_DEBUG(( _INFO ACE_TEXT( "value:[%s]\n" ), va转载 2011-09-02 22:03:35 · 618 阅读 · 0 评论 -
cin用法介绍(特别是学习了cin.clear和cin.sync)
in用法介绍 摘自http://hi.baidu.com/jrckkyy/blog/item/0a4a3026b10a8f128b82a184.html2008年06月04日 星期三 下午 01:11第一次搞cin,真是搞昏人了,现在逐渐开始明白是什么东东,一起探讨转载 2011-09-04 09:34:15 · 963 阅读 · 1 评论 -
时间和日期操作
一. 几个基本概念介绍:Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UT转载 2011-08-28 21:24:33 · 671 阅读 · 0 评论 -
一点小细节
#include #include #include using namespace std;class Parent{ public: void checkOut(){outPut();cout virtual原创 2011-09-07 21:03:10 · 567 阅读 · 0 评论 -
模板的友元函数的使用
#include #include using namespace std;template class T>class A;template class T>void display(const A &a);template clas原创 2011-09-11 18:10:38 · 564 阅读 · 0 评论 -
C++虚继承内存对象模型探讨
C++虚继承内存对象模型探讨最近看了下Inside C++里面讲的对虚继承层次的对象的内存布局,发现在不同编译器实现有所区别。因此,自己动手探索了一下。结果如下:首先,说说GCC的编译器.它实现比较简单,不管是否虚继承,GCC都是将虚表指针在整个继承关系中转载 2011-09-13 00:30:11 · 1293 阅读 · 0 评论 -
枚举的取值范围
每个枚举都有取值范围,通过强制类型转换,可以将取值范围内的任何整数赋给枚举变量,即使这个值不是枚举值.例如:假设bits和Myflag的定义如下:enum bits{one = 1,two = 2,four = 4,eight};bits bit;则bit = bits(6);是合法的,其中,6不是枚举值,但它是属于枚举值范围内的. 取值范围定义如下:原创 2011-11-14 21:56:43 · 9920 阅读 · 3 评论 -
FIFO实例
命名管道客户端与服务端练习原创 2015-07-26 10:28:52 · 1002 阅读 · 0 评论 -
epoll之ET与LT模式
在使用epoll时,在函数 epoll_ctl中如果不设定,epoll_event 的event默认为LT(水平触发)模式。使用LT模式意味着只要fd处于可读或者可写状态,每次epoll_wait都会返回该fd,这样的话会带来很大的系统开销,且处理时候每次都需要把这些fd轮询一遍,如果fd的数量巨大,不管有没有事件发生,epoll_wait都会触发这些fd的轮询判断。转载 2015-07-20 16:45:11 · 590 阅读 · 0 评论