深信服面试准备

https://blog.csdn.net/xp731574722/article/details/82868560 https://blog.csdn.net/xp731574722/article/details/82807667

2019-01-11 21:04:28

阅读数 541

评论数 1

linux下的IO复用epoll详解

前言       I/O多路复用有很多种实现。在linux上,2.4内核前主要是select和poll,自Linux 2.6内核正式引入epoll以来,epoll已经成为了目前实现高性能网络服务器的必备技术。尽管他们的使用方法不尽相同,但是本质上却没有什么区别。本文将重点探讨将放在EPOLL的实...

2019-01-09 19:44:49

阅读数 50

评论数 0

socket网络编程客户服务器程序范式(三)IO复用select

一:select函数:   /* According to POSIX.1-2001 */ #include <sys/select.h> /* According to earlier standards...

2019-01-09 16:22:01

阅读数 22

评论数 0

深入理解printf函数的实现

先看glibc中printf函数的实现源码: ​#include <ansidecl.h> #include <stdarg.h> #include <stdio.h&...

2019-01-09 11:22:34

阅读数 276

评论数 0

Unix socket 编程API二之辅助函数

一:网络字节序跟主机字节序转换: #include <arpa/inet.h> uint32_t htonl(uint32_t hostlong); //host to network long uint16_t htons(uint16_t hos...

2019-01-08 19:36:28

阅读数 23

评论数 0

TCP三路握手

https://blog.csdn.net/qq_38950316/article/details/81087809

2019-01-08 18:01:26

阅读数 34

评论数 0

unix socket编程API

我们从一个面试题说起,面试题目是这样的:socket网络编程的一般步骤是怎么样的?下面是参考答案: 对于TCP连接: 1.服务器端1)创建套接字socket;2)绑定端口号bind;3)监听连接listen;4)接受连接请求accept,并返回新的套接字;5)用新返回的套接字read/writ...

2019-01-08 16:02:46

阅读数 37

评论数 0

linux管道二:FIFO命名管道

FIFO有时又被称为命名管道,通过该管道的名字,可以实现在任意2个进程之间的消息传递:        #include <sys/stat.h>        int mkfifo(const char *pathname, mode_t mode);...

2019-01-07 20:01:35

阅读数 17

评论数 0

C++单例模式(懒汉和饿汉)与线程安全,模板单例

本想写一下C++单例模式的懒汉和饿汉模式的实现,并讨论懒汉模式下的线程安全问题,发现下面的文章写的很明白了,这里引用一下,不做具体介绍了。 https://blog.csdn.net/hj605635529/article/details/70172842  下面这篇博客介绍了单例模式的模板化...

2019-01-07 18:56:27

阅读数 36

评论数 0

linux管道一

管道分为匿名管道和有名管道,平时我们说的管道通常指匿名管道,有名管道又叫FIFO,我们先介绍匿名管道,然后介绍有名管道,下文中的管道没特别说明都指的是匿名管道。 管道有已下两种局限性:         1.管道是半双工的,只支持数据的单向流动,即管道的一端只能支持读(fd[0]),另一端支持写(...

2019-01-06 14:35:59

阅读数 53

评论数 0

C标准库string.h源码八:memcmp/memset/memchr

int memcmp(const void *cs, const void *ct, size_t count) { const unsigned char *su1, *su2; int res = 0; for (su1 = cs, su2 = ct; 0 &...

2019-01-05 21:42:21

阅读数 33

评论数 0

C标准库string.h源码实现七memcpy/memmove

void *memcpy(void *dst, const void *src, size_t count) { void * ret = dst; while (count--) { *(char *)dst = *(char *)src; d...

2019-01-05 18:30:26

阅读数 51

评论数 2

C标准库string.h源码六:strspn/strcspn/strpbrk/strtok

​size_t strspn(const char *str, const char * accept); 【函数说明】strspn() 从参数 str 字符串的开头计算连续的字符,而这些字符都完全是 accept 所指字符串中的字符。简单的说,若 strspn() 返回的数值为n,则代表字符串...

2019-01-05 16:47:26

阅读数 53

评论数 0

C标准库string.h源码五:strchr/strrchr/strstr

 char *strchr(const char *s, int c); //返回一个字符指针,它指向c在s中首次出现的位置,如果未找到,返回NULL  char *strrchr(const char *s, int c);//返回一个字符指针,它指向c在s中最后出现的位置,如果未找到,返回NU...

2019-01-05 14:48:16

阅读数 45

评论数 0

C标准库源码四:strcmp/strncmp

/* strcmp - compare two strings, returning less than, equal to, or greater than Purpose: Compares two string, determining their lexical orde...

2019-01-05 14:35:47

阅读数 57

评论数 0

C标准库string.h源码三strcat/strncat

​ /* char *strcat(dst, src) - concatenate (append) one string to another Purpose: Concatenates src onto the end of dest. Assumes enough ...

2019-01-05 14:18:31

阅读数 31

评论数 0

C标准库string.h源码二:strcpy/strncpy

char * strcpy (char * dst, const char * src) { char * cp = dst; while( *cp++ = *src++ != '\0') ; /* Copy src over dst ...

2019-01-05 14:12:57

阅读数 44

评论数 0

C标准库string.h源码一strlen

头文件<string.h>中定义了2组字符串函数。第一组函数的名字以str开头;第二组函数的名字以mem开头。除函数memmove外,其他函数都没有定义重叠对象间的复制行为。比较函数将参数作为unsigned char类型的数组看待。 glibc库函数...

2019-01-05 14:03:05

阅读数 217

评论数 0

unix内核对象属性

unix中,线程(pthread),互斥锁(mutex),读写锁(rwlock),条件变量(cond)等他们都有一组属性,且功能类似。 他们通用的规则如下: 1.每个对象与其对应的属性对象相关联,通常属性对象对应用程序是不透明的,它提供了一组接口操作属性对象。 2.init函数对属性对象初始...

2019-01-03 20:21:24

阅读数 17

评论数 0

Unix进程间的通信:读写锁,自旋锁,屏障

1.读写锁        #include <pthread.h>        int pthread_rwlock_destroy(pthread_rwlock_t *rwlock);        int pthread_rwlock_init...

2019-01-03 16:50:11

阅读数 51

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭