06 2021 档案

摘要:获取当前工作目录有多种方式。 1. getcwd 获取工作目录(启动程序的目录) getcwd 可以获取当前工作目录,但不是目标程序所在目录,而是启动程序时所在的工作目录。 比如,如果shell 从工作目录/home/user启动目标程序(位于/home/user/workspace/testpro 阅读全文
posted @ 2021-06-26 20:05 明明1109 阅读(5965) 评论(0) 推荐(0) 编辑
摘要:0. 问题背景 台式机距离路由器比较远,无法只连网线到路由器上网。现在有2个路由器,能否用另外一个路由器连接主路由器上网? 可以用路由器的桥接功能,让副路由器桥接主路由器,然后PC通过网线连接副路由器进行上网。 由于有线桥接较为简单,这里只讲无线桥接。 我配置的桥接拓扑示意图,如下 1. 确定路由器 阅读全文
posted @ 2021-06-25 15:15 明明1109 阅读(10370) 评论(0) 推荐(1) 编辑
摘要:我们知道,多线程可以用多线程互斥量pthread_mutex_t实现线程之间上锁,那么多进程之间如何共享锁呢? 1. 文件锁实现多进程锁 由于文件锁是存放到位于内存的系统文件表中, 所有进程/线程可通过系统访问。如果不同进程使用同一文件锁(写锁/排他锁),当取得文件锁时,进程可继续执行;如果没有取得 阅读全文
posted @ 2021-06-23 18:03 明明1109 阅读(8858) 评论(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 阅读(1843) 评论(0) 推荐(1) 编辑
摘要:1. 问题描述 1)假如有一个IPv4地址字符串(点分十进制),如何转化为socket编程所需的sockaddr地址结构信息? 2)假如通过getaddrinfo等方式,已经取得了sockaddr地址结构信息,如何转化为字符串形式?(点分十进制 for IPv4, 冒号十六进制 for IPv6) 阅读全文
posted @ 2021-06-22 10:22 明明1109 阅读(7918) 评论(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 阅读(598) 评论(0) 推荐(0) 编辑
摘要:1. 服务器模型存在的问题 典型Unix系统可能存在许多服务器, 都只是等待客户请求的到达, 如FTP, Telnet, Rlogin, TFTP等. 4.3BSD之前, 这些服务都有一个进程与之关联. 这些进程在系统自举阶段(bootstrap), 从/etc/rc文件中启动, 且每个进程执行几乎 阅读全文
posted @ 2021-06-14 22:32 明明1109 阅读(202) 评论(0) 推荐(0) 编辑
摘要:1. syslogd守护进程 我们知道, 守护进程(daemon)是 在后台运行且不与任何控制终端关联的进程. 参见: Linux 系统编程学习笔记 - 终端、作业控制与守护进程 守护进程章节. 那么如何得知守护进程的状态, 和某些事情发生呢?守护进程如何输出消息, 或者告知管理员? 可以调用sys 阅读全文
posted @ 2021-06-13 22:39 明明1109 阅读(1702) 评论(0) 推荐(0) 编辑
摘要:11.1 概述 用IP地址数值表示的主机, 端口标识服务器, 不容易记住, 而用名字表示比较容易记住. 另外, 数值地址可以变动, 而名字保持不变, 而且手工键入IP地址也很容易出错. 这就引入了域名系统 - 名字与地址间的转换. 名字和数值地址间进行转换的函数, 也是本章主要内容: gethost 阅读全文
posted @ 2021-06-13 15:57 明明1109 阅读(310) 评论(0) 推荐(0) 编辑
摘要:参考 廖雪峰官网Git教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 一、安装 1. 从官网下载安装包 官网: https://git-scm.com/ 对应github:ht 阅读全文
posted @ 2021-06-12 10:55 明明1109 阅读(114) 评论(0) 推荐(0) 编辑
摘要:1. 出错函数汇总 AUPE 输出至标准错误的出错函数, 分为以下几个: 函数名 何时调用 功能 err_ret 系统调用相关的非致命错误 打印消息并且返回 err_sys 系统调用相关的非致命错误 打印消息并且终止程序 err_cont 不与系统调用相关的非致命错误 错误码通过显式参数error传 阅读全文
posted @ 2021-06-11 16:41 明明1109 阅读(319) 评论(0) 推荐(0) 编辑
摘要:1. 输出 1.1 输出格式化字符串 1.1.1 printf 输出格式化字符串到标准输出设备stdout #include <stdio.h> int printf(const char *format, ...); 参数 format 格式化字符串以null终结符结尾 ... 对应format中 阅读全文
posted @ 2021-06-11 15:04 明明1109 阅读(1347) 评论(0) 推荐(0) 编辑
摘要:1. 目标 Linux C编写一个简单的固定数目的线程池, 实现向线程池添加任务并执行的功能. 2. 固定数目线程池fixedthreadpool 类似于java的newFixedThreadPool, 线程池中的子线程数目固定, 在创建时由用户, 可以用一个线程队列来描述. 当用户需要用线程池执行 阅读全文
posted @ 2021-06-08 21:14 明明1109 阅读(490) 评论(3) 推荐(0) 编辑
摘要:1. UDP connect 我们经常说UDP是无连接的传输协议, 如果UDP调用connect呢? 会发生什么? UDP套接字调用connect函数, 跟TCP连接调用connect不一样: 没有三次握手过程. 而且, 内核只是检查是否存在立即可知的错误(e.g. 一个显然不可达的目的地, 由于非 阅读全文
posted @ 2021-06-08 15:06 明明1109 阅读(2465) 评论(0) 推荐(0) 编辑
摘要:1. 套接字选项概述 有很多方法来获取和设置套接字的选项, 以影响套接字行为: getsockopt和setsocketopt; fcntl; ioctl; 2. getsockopt和setsockopt 2个函数仅用于套接字, 分别用于获取和设置套接字选项 #include <sys/types 阅读全文
posted @ 2021-06-07 01:42 明明1109 阅读(935) 评论(0) 推荐(1) 编辑
摘要:每个进程的实际实现都有一组资源限制, 可以用getrlimit, setrlimit获取或设置 1. getrlimit和setrlimit getrlimit和setrlimit, 能分别获取/设置当前进程的系统资源限制 #include <sys/time.h> #include <sys/re 阅读全文
posted @ 2021-06-06 17:50 明明1109 阅读(1510) 评论(0) 推荐(0) 编辑
摘要:shutdown和close都可以用来关闭TCP连接, 那么它们有区别与联系呢? 下面来研究下这个问题: 1. close 关闭连接和套接字. 成功返回0; 失败为-1, errno被设置 #include <unistd.h> int close(int fd); close会把描述符(sockf 阅读全文
posted @ 2021-06-06 00:04 明明1109 阅读(437) 评论(0) 推荐(0) 编辑
摘要:1. 慢系统调用 UNP 5.9提到, 慢系统调用(slow system call)指不会立即返回的系统调用, 可能永远阻塞而无法返回. 诸如多数网络支持函数, 包括read/write, connect, accept等, 都属于这一类. 慢系统调用, 主要分为以下类别: 读写"慢"设备 包括p 阅读全文
posted @ 2021-06-04 18:33 明明1109 阅读(2190) 评论(0) 推荐(1) 编辑
摘要:1. RST标志位 RST标志位位于TCP报文首部, 其置位时, 表示连线复位,首先断开连接,然后重建. RST置位的分节(TCP数据包), 常称为RST分节. RST不同于close (FIN分节), close用于关闭正常连接, 而RST用于复位异常连接. 参考 TCP报文格式 | CSDN T 阅读全文
posted @ 2021-06-04 17:07 明明1109 阅读(783) 评论(0) 推荐(0) 编辑