Linux
半片瓜
我要每天充实且快乐
展开
-
linux信号量
什么是信号量? 为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。原创 2015-05-24 12:01:13 · 328 阅读 · 0 评论 -
recvmsg和sendmsg
这两个函数是最通用的I/O函数。实际上我们甚至可以说用recvmsg来代替read、readv、recv和recvfrom。sendmsg也类似。 需要的头文件 #include 函数原型 ssize_t recvmsg(int sockfd,struct msghdr *msg,int flags); ssize_t sendmsg(int soc转载 2015-06-02 09:14:12 · 464 阅读 · 0 评论 -
linux下的alarm
1.概述 alarm也称为闹钟函数,它可以在进程中设置一个定时器,当定时器指定的时间到时,它向进程发送SIGALRM信号。如果忽略或者不捕获此信号,则其默认动作是终止调用该alarm函数的进程。要注意的是,一个进程只能有一个闹钟时间,如果在调用alarm之前已设置过闹钟时间,则任何以前的闹钟时间都被新值所代替。 2.函数使用 所需的头文件 #include 函数原型转载 2015-06-01 22:20:53 · 463 阅读 · 0 评论 -
syslog
syslog是Linux中设置系统日记的一种工具。主要有三个函数openlog,syslog,closelog。 需要的库 #include void openlog(const char* ident, int options, int facility); 注意openlog是可选的,如不调用openlog,则在第一次调用syslog,自动调用openlog。转载 2015-06-01 10:58:19 · 614 阅读 · 0 评论 -
虚拟机下linux配置yum
1.将镜像文件放入虚拟机中 在虚拟机下 虚拟机-》设置-》选择cd/dvd-》浏览选择iso文件 2.挂载本地镜像文件到指定文件夹中 情况一:::一般情况下镜像文件在/dev/cdrom下 创建指定文件夹 mkdir /mnt/cdrom 然后挂载 mount /dev/cdrom /mnt/cdrom 情况二:::如果镜像不在/dev/cdrom,而是显示在/med原创 2015-04-28 20:48:53 · 2512 阅读 · 0 评论 -
线程属性
线程属性的对象类型为pthread_attr_t 在/usr/include/bits/pthreadtypes.h定义 定义如下 typedef struct { int detachstate; //卸载状态 int schedpolicy; //调度策略 struct sched_param scheparam; //调度参数 int inheritsched;转载 2015-04-23 19:53:35 · 265 阅读 · 0 评论 -
linux下的高级文件编程
测试文件类型 #include #include int main( int argc, char *argv[] ) { struct stat statbuf; if (argc < 2) { printf("please input a file paraster\n"); return 1; } if转载 2015-05-19 10:42:39 · 321 阅读 · 0 评论 -
wait和waitpid的区别
#include pid_t wait(int *statloc); pid_t waitpd(pid_t pid, int *statloc, int options); pid_t wait(int *status) 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就转载 2015-05-23 15:38:06 · 3182 阅读 · 0 评论 -
线程同步
线程同步需要两种机制,分别是互斥锁和条件变量 一:::::互斥锁 互斥锁的初始化 pthread_mutex_init(pthread_mutex_t *mutex,const pthread-mutex_attr *attr) mutex初始化 attr为互斥锁的属性 释放互斥锁 pthread_mutex_destory(pthread_mutex_t *mu转载 2015-04-22 19:16:06 · 229 阅读 · 0 评论 -
线程
线程是一个动态的对象,他表示进程中的一个控制点,并且执行一系列的指令。 需要库 #include 编译时需要添加库连接,如 gcc -o test test.c -lpthread 线程创建 int pthrea_create(pthread *thread, pthread_attr_t, void*(*start_routine)(void*), void* arg原创 2015-04-22 13:57:39 · 263 阅读 · 0 评论 -
Mysql用户权限管理
一:::grant通用SQL92格式 GRANT privileges(columns) ON what TO account IDENTIFIED BY 'password' REQUIRE encryption requirements WITH grant or resource management option; privileges 表示授予的权限 (columns) 作用的原创 2015-04-27 14:20:48 · 348 阅读 · 0 评论 -
网络字节转换inet_aton、inet_nota、inet_addr
int inet_aton(const char *cp, struct in_addr *inp); char *inet_ntoa(struct in_addr in); in_addr_t inet_addr(const char *cp); inet_aton() 转换网络主机地址cp为二进制数值,并存储在struct in_addr结构中,即第二个参数*inp,函数返回转载 2015-05-19 20:15:28 · 1187 阅读 · 0 评论 -
linux下的make
.SUFFIXES:.c.o CC=gcc SRCS=cli1.c OBJS=$(SRCS:.c=.o) EXEC=$(SRCS:.c=) start: $(OBJS) $(CC) -o $(EXEC) $(OBJS) .c.o: $(CC) -o $@ -c $ clean: rm -f $(OB转载 2015-05-22 11:01:16 · 330 阅读 · 0 评论 -
gdb测试
(1)gcc -g test.c -o test -g 告诉编译器在映射中包含调试信息。 (2)启动gdb gdb test (3)查看list 如list 10 20 显示第10行到第20行代码 (4)设置断点break break设置方法 break function //在函数上设置一个断点 break file:function //在指定文件的函数设置一原创 2015-05-23 17:07:00 · 567 阅读 · 0 评论 -
linux信号集
信号集是将多个信号放在集合中进行集中的处理。 int sigemptyset(sigset_t *set); 将set集合置空 int sigfillset(sigset_t *set); 将所有信号加入set集合 int sigaddset(sigset_t *set,int signo); 将signo信号加入到set集合 int sigdelset(sigset_t *set,原创 2015-05-24 10:18:52 · 296 阅读 · 0 评论 -
linux信号简单编程
#include #include #include void getsign(int signo) { if (signo == SIGUSR1) printf("recevied SIGUSR1\n"); else if (signo == SIGUSR2) printf("received SI原创 2015-05-23 17:25:00 · 281 阅读 · 0 评论 -
linux下C/C++库的创建
库是目标文件的一个集合。作用是对于一些目标文件针对给定的问题有相互关联的行为,那么就可以把这事目标文件整合到一个库中,从而简化应用程序开发人员对这些目标文件的存取和分发。 以下使用随机数说明,需要初始化,返回一个有上限的数。 先创建initRand.c初始化 #include #include void initRand() { time_t seed;原创 2015-05-24 11:28:00 · 425 阅读 · 0 评论