
Linux
半片瓜
我要每天充实且快乐
展开
-
linux信号量
什么是信号量?为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。原创 2015-05-24 12:01:13 · 355 阅读 · 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 · 508 阅读 · 0 评论 -
linux下的alarm
1.概述alarm也称为闹钟函数,它可以在进程中设置一个定时器,当定时器指定的时间到时,它向进程发送SIGALRM信号。如果忽略或者不捕获此信号,则其默认动作是终止调用该alarm函数的进程。要注意的是,一个进程只能有一个闹钟时间,如果在调用alarm之前已设置过闹钟时间,则任何以前的闹钟时间都被新值所代替。2.函数使用所需的头文件#include 函数原型转载 2015-06-01 22:20:53 · 513 阅读 · 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 · 679 阅读 · 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 · 2563 阅读 · 0 评论 -
线程属性
线程属性的对象类型为pthread_attr_t在/usr/include/bits/pthreadtypes.h定义定义如下typedef struct{int detachstate; //卸载状态int schedpolicy; //调度策略struct sched_paramscheparam; //调度参数int inheritsched;转载 2015-04-23 19:53:35 · 287 阅读 · 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 · 344 阅读 · 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 · 3233 阅读 · 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 · 261 阅读 · 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 · 292 阅读 · 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 · 376 阅读 · 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 · 1246 阅读 · 0 评论 -
linux下的make
.SUFFIXES:.c.oCC=gccSRCS=cli1.cOBJS=$(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 · 353 阅读 · 0 评论 -
gdb测试
(1)gcc -g test.c -o test-g 告诉编译器在映射中包含调试信息。(2)启动gdbgdb test(3)查看list如list 10 20 显示第10行到第20行代码(4)设置断点breakbreak设置方法break function //在函数上设置一个断点break file:function //在指定文件的函数设置一原创 2015-05-23 17:07:00 · 607 阅读 · 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 · 320 阅读 · 0 评论 -
linux信号简单编程
#include#include#includevoid getsign(int signo){ if (signo == SIGUSR1) printf("recevied SIGUSR1\n"); else if (signo == SIGUSR2) printf("received SI原创 2015-05-23 17:25:00 · 320 阅读 · 0 评论 -
linux下C/C++库的创建
库是目标文件的一个集合。作用是对于一些目标文件针对给定的问题有相互关联的行为,那么就可以把这事目标文件整合到一个库中,从而简化应用程序开发人员对这些目标文件的存取和分发。 以下使用随机数说明,需要初始化,返回一个有上限的数。先创建initRand.c初始化#include #include void initRand(){ time_t seed;原创 2015-05-24 11:28:00 · 460 阅读 · 0 评论