上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 22 下一页
摘要: 自旋锁(Spin Lock) 自旋锁类似于互斥量,不过自旋锁不是通过休眠阻塞进程,而是在取得锁之前一直处于忙等待的阻塞状态。这个忙等的阻塞状态,也叫做自旋。 自旋锁通常作为底层原语实现其他类型的锁。 适用场景: 1)锁被持有的时间短,而且线程不希望在重新调度上花费太多的成本; 2)在非抢占式内核中, 阅读全文
posted @ 2021-08-31 18:55 明明1109 阅读(1723) 评论(0) 推荐(1) 编辑
摘要: 问题引入 POSIX限制和XSI限制,规定了一些系统实现必须支持的最小值,比如<limits.h>中的POSXI.1规定_POSIX_OPEN_MAX(每个进程打开文件数)最小值为20,_POSIX_PATH_MAX(路径名中的字节数,包括null 终结符)最小为256,而XSI规定_XOPEN_P 阅读全文
posted @ 2021-08-24 12:26 明明1109 阅读(250) 评论(0) 推荐(0) 编辑
摘要: readdir与readdir_r简要说明 readdir可以用来遍历指定目录路径下的所有文件。不过,不包含子目录的子文件,如果要递归遍历,可以使用深度遍历,或者广度遍历算法。 readdir_r 是readdir的可重入版本,线程安全。readdir因为直接返回了一个static的struct d 阅读全文
posted @ 2021-08-23 23:36 明明1109 阅读(9476) 评论(0) 推荐(0) 编辑
摘要: 问题:gethostname, gethostbyname 这2个名字相似的网络编程API,有何联系与区别? gethostname 获取主机名称(非登录用户名),其参数用于存储查询结果。gethostname 查找的是/etc/hostname文件,得到本主机名。其获得的主机名,可用于getadd 阅读全文
posted @ 2021-08-06 12:00 明明1109 阅读(1421) 评论(0) 推荐(0) 编辑
摘要: strchr,strrchr, strchrnul 定位一个字符 strchr系列函数介绍 strchr 定位一个字符在字符串中的位置。 同系列函数有,strrchr,strchrnul。 区别在于: strchr 从左向右找,第一个出现字符c的位置即为所求; strrchr 从右向左找,第一个出现 阅读全文
posted @ 2021-07-26 19:45 明明1109 阅读(3063) 评论(0) 推荐(0) 编辑
摘要: SO_RCVTIMEO, SO_SNDTIMEO介绍 套接字选项SO_RCVTIMEO: 用来设置socket接收数据的超时时间; 套接字选项SO_SNDTIMEO: 用来设置socket发送数据的超时时间; 比如,一般情况下,调用accept/connect/send/recv, 进程会阻塞,但是 阅读全文
posted @ 2021-07-24 16:56 明明1109 阅读(12097) 评论(0) 推荐(1) 编辑
摘要: 线程与进程 fork子进程如何复制多线程的父进程? 考虑一个问题:父进程在fork之前,已经创建了多个线程,那么再调用fork,新建子进程具有和父进程同样数量的线程吗?是否会复制父进程的所有线程? 答案是否定的。 fork子进程只会复制调用fork的线程,不会复制父进程的其他线程。既然是复制,因而子 阅读全文
posted @ 2021-07-22 16:35 明明1109 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 简介 拥塞指的是 在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏。这种情况就叫拥塞(congestion)。 TCP模块任务:提供网络利用率,降低丢包率,保证网络资源对每条数据的公平性。 拥塞控制 标准文档:RFC 5681,介绍了拥塞控制4个部分:慢启动(sl 阅读全文
posted @ 2021-07-22 00:17 明明1109 阅读(1045) 评论(0) 推荐(1) 编辑
摘要: fork 系统调用 可以通过fork系统调用创建新的进程。调用进程称为父进程,被创建的进程称为子进程。 fork函数复制当前进程,会在内核进程表中创建一个新的进程表项。新的进程表项有很多属性和原进程相同,如堆指针、栈指针、标志寄存器的值。也有许多属性被赋予新的值,如子进程PPID为原来进程PID。 阅读全文
posted @ 2021-07-21 23:40 明明1109 阅读(167) 评论(0) 推荐(0) 编辑
摘要: mktemp 创建临时文件名 创建一个独特的文件名,每次调用得到的文件名都不一样。 注意:该函数只产生文件名,并不创建文件。 #include <stdlib.h> char *mktemp(char *template); 参数 template 必须是一个字符数组,末尾6个字符必须是"XXXXX 阅读全文
posted @ 2021-07-14 11:13 明明1109 阅读(1908) 评论(0) 推荐(0) 编辑
摘要: 1. 问题:Linux C如何切分字符串? java的String类有split方法,可以将字符串对象按指定字符串进行切分,返回一个数组String[],包含切分后的所有字符串。 Linux C如何对字符串进行切分呢?有没有类似函数/系统调用? 答:Linux C没有字符串类,也没有split函数, 阅读全文
posted @ 2021-07-08 14:53 明明1109 阅读(1785) 评论(0) 推荐(0) 编辑
摘要: 获取当前工作目录有多种方式。 1. getcwd 获取工作目录(启动程序的目录) getcwd 可以获取当前工作目录,但不是目标程序所在目录,而是启动程序时所在的工作目录。 比如,如果shell 从工作目录/home/user启动目标程序(位于/home/user/workspace/testpro 阅读全文
posted @ 2021-06-26 20:05 明明1109 阅读(5393) 评论(0) 推荐(0) 编辑
摘要: 0. 问题背景 台式机距离路由器比较远,无法只连网线到路由器上网。现在有2个路由器,能否用另外一个路由器连接主路由器上网? 可以用路由器的桥接功能,让副路由器桥接主路由器,然后PC通过网线连接副路由器进行上网。 由于有线桥接较为简单,这里只讲无线桥接。 我配置的桥接拓扑示意图,如下 1. 确定路由器 阅读全文
posted @ 2021-06-25 15:15 明明1109 阅读(9249) 评论(0) 推荐(0) 编辑
摘要: 我们知道,多线程可以用多线程互斥量pthread_mutex_t实现线程之间上锁,那么多进程之间如何共享锁呢? 1. 文件锁实现多进程锁 由于文件锁是存放到位于内存的系统文件表中, 所有进程/线程可通过系统访问。如果不同进程使用同一文件锁(写锁/排他锁),当取得文件锁时,进程可继续执行;如果没有取得 阅读全文
posted @ 2021-06-23 18:03 明明1109 阅读(8051) 评论(0) 推荐(0) 编辑
摘要: 今天用man命令查看pthread_mutex_init文档,发现没有该条目,而pthread_create却有。 我用的系统是ubuntu14x64,内核是4.2.0-27-generic版本 $ uname -a Linux ubuntu 4.2.0-27-generic #32~14.04.1 阅读全文
posted @ 2021-06-23 16:03 明明1109 阅读(1680) 评论(0) 推荐(0) 编辑
摘要: 1. 问题描述 1)假如有一个IPv4地址字符串(点分十进制),如何转化为socket编程所需的sockaddr地址结构信息? 2)假如通过getaddrinfo等方式,已经取得了sockaddr地址结构信息,如何转化为字符串形式?(点分十进制 for IPv4, 冒号十六进制 for IPv6) 阅读全文
posted @ 2021-06-22 10:22 明明1109 阅读(6484) 评论(0) 推荐(0) 编辑
摘要: 参考: linux MD5 Linux 自带md5sum命令, 可用于计算和检查md5 1. 利用md5sum生成md5值 $ echo -n '123456' | md5sum # -n 命令阻止自动换行 2. 制作成脚本 文件md5 #!/bin/bash echo -n $1 | md5sum 阅读全文
posted @ 2021-06-16 22:08 明明1109 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 1. 服务器模型存在的问题 典型Unix系统可能存在许多服务器, 都只是等待客户请求的到达, 如FTP, Telnet, Rlogin, TFTP等. 4.3BSD之前, 这些服务都有一个进程与之关联. 这些进程在系统自举阶段(bootstrap), 从/etc/rc文件中启动, 且每个进程执行几乎 阅读全文
posted @ 2021-06-14 22:32 明明1109 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 1. syslogd守护进程 我们知道, 守护进程(daemon)是 在后台运行且不与任何控制终端关联的进程. 参见: Linux 系统编程学习笔记 - 终端、作业控制与守护进程 守护进程章节. 那么如何得知守护进程的状态, 和某些事情发生呢?守护进程如何输出消息, 或者告知管理员? 可以调用sys 阅读全文
posted @ 2021-06-13 22:39 明明1109 阅读(1470) 评论(0) 推荐(0) 编辑
摘要: 11.1 概述 用IP地址数值表示的主机, 端口标识服务器, 不容易记住, 而用名字表示比较容易记住. 另外, 数值地址可以变动, 而名字保持不变, 而且手工键入IP地址也很容易出错. 这就引入了域名系统 - 名字与地址间的转换. 名字和数值地址间进行转换的函数, 也是本章主要内容: gethost 阅读全文
posted @ 2021-06-13 15:57 明明1109 阅读(259) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 22 下一页