unix环境编程
文章平均质量分 70
stockholmrobber
????????????????
展开
-
udp中的connect()&bind()
connect()&bind()的作用udpudp connect() #include <sys/types.h> #include <sys/socket.h> int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);udp connect()描述connect系统调用将sockfd关原创 2017-08-19 09:52:33 · 1400 阅读 · 1 评论 -
基于内存的posix信号量用法
posix信号量的两种形式基于文件系统不打算详细讲细节,提供两种模板,简单的用法#include <semaphore.h>sem_t* sem_open(const char*name,int oflag,.../*mode_t mode,unsigned int value*/)oflag参数我一般指定O_CREAT|O_RDWR,因为一般不保存信号量,毕竟总觉得这东西会一直占系统资源,所以我原创 2017-08-20 21:31:01 · 301 阅读 · 0 评论 -
Linux Hook技术实践
LInux Hook技术实践什么是hook简单的说就是别人本来是执行libA.so里面的函数的,结果现在被偷偷换成了执行你的libB.so里面的代码,是一种替换。为什么hook恶意代码注入调用常用库函数时打log改变常用库函数的行为,个性化怎么hook这个东西在win里面有现成的api,但是在linux里面却要主动修改ELF文件,或者修改动态库链接路径。我看网上写的好多挺麻烦的,而且还要调用原创 2017-08-19 09:53:37 · 2458 阅读 · 0 评论 -
libevent源码分析(细节版)1
从sample/hello-world.c来剖析libevent源码我准备从libevent源码中最简单的sample开始剖析源码。目前思路是碰到dfs的方法,即碰到一个不够底层的封装,就去深究它,直到彻底搞懂它,然后返回继续。先上hello-world.c的源码#include <string.h>#include <errno.h>#include <stdio.h>#include <s原创 2017-08-25 09:08:12 · 635 阅读 · 0 评论 -
腾讯技术1面
记腾讯 服务端cpp技术一面问:进程间通信有哪些方式答:信号量,信号,管道,socket,共享内存问:哪种方式最快答:共享内存问:为什么答:共享内存只在创建时有系统调用,创建好后,就和访问自己的内存一样,而管道,socket等方式不仅创建时有系统调用,在读写数据时都有,需要多次进入内核,上下文切换。而且他们在内核和用户态之间多次复制数据,速度肯定慢问:进程和线程的区别答:进程是资源分配的基本单位,线原创 2017-09-21 21:37:16 · 414 阅读 · 0 评论 -
malloc与缺页的一些的时间测量
malloc与缺页的一些的时间测量时间函数struct timespec{ time_t tv_sec; long int tv_nsec;};/*1.which_clock参数解释CLOCK_REALTIME:系统实时时间,随系统实时时间改变而改变,即从UTC1970-1-1 0:0:0开始计时,中间时刻如果系统时间被用户该成其他,则对应的时间相应改变CLOCK_MONOTONIC:从原创 2017-10-10 15:18:56 · 1017 阅读 · 0 评论 -
N皇后问题的并行解法
N皇后问题的并行解法N皇后问题其实就是一个n*n的棋盘上摆n个皇后,任意两个皇后不能同行,同列,同对角线,求出所有的摆法。这个问题可以看做是求n的组合数。比如第一列上的皇后在第x1行,第二列在x2行…..最后的一个解就是x1x2x3…xn。这是[1,n]的一个排列,求出全排列,然后去掉不符合的就是题目的解,而全排列的求解实际就是一个简答的DFS。但是这个方法太暴力了,实际上不少情况下不用摆到最后一列原创 2017-10-13 17:05:27 · 2786 阅读 · 1 评论