随笔分类 -  Linux

Linux 编程,普通操作知识
摘要:我们知道,多线程可以用多线程互斥量pthread_mutex_t实现线程之间上锁,那么多进程之间如何共享锁呢? 1. 文件锁实现多进程锁 由于文件锁是存放到位于内存的系统文件表中, 所有进程/线程可通过系统访问。如果不同进程使用同一文件锁(写锁/排他锁),当取得文件锁时,进程可继续执行;如果没有取得 阅读全文
posted @ 2021-06-23 18:03 明明1109 阅读(8862) 评论(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 阅读(7923) 评论(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 阅读(1703) 评论(0) 推荐(0) 编辑
摘要:11.1 概述 用IP地址数值表示的主机, 端口标识服务器, 不容易记住, 而用名字表示比较容易记住. 另外, 数值地址可以变动, 而名字保持不变, 而且手工键入IP地址也很容易出错. 这就引入了域名系统 - 名字与地址间的转换. 名字和数值地址间进行转换的函数, 也是本章主要内容: gethost 阅读全文
posted @ 2021-06-13 15:57 明明1109 阅读(310) 评论(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 阅读(2466) 评论(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 阅读(2191) 评论(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) 编辑
摘要:安装好git后, 如何配置连接至gitee ? 首先, 需要在官网注册一个gitee账号, 然后进行以下配置步骤: 1. 设置账号 $ git config --global user.name "your name" 2. 设置邮箱 $ git config --global user.email 阅读全文
posted @ 2021-05-31 17:39 明明1109 阅读(2040) 评论(0) 推荐(0) 编辑
摘要:1. 出错处理errno 每个进程维护一个全局整型变量errno, 记录系统(调用)的最后一次错误代码. errno及其常量值定义位于<errno.h>. 以前, errno不是线程安全的, 其定义是: extern int errno; 现在, 为支持多线程环境, errno定义是: extern 阅读全文
posted @ 2021-05-27 15:21 明明1109 阅读(1615) 评论(0) 推荐(0) 编辑
摘要:1. 进程运行时间的概念 如何度量进程的运行时间? 可以用times函数获取进程的墙上时钟时间,用户CPU时间,系统CPU时钟时间。 1.1 墙上时钟时间 墙上时钟时间 wall clock time: 又简称时钟时间,从进程开始运行到结束,系统时钟走过的时间(时钟数),包含了进程阻塞、等待的时间。 阅读全文
posted @ 2021-05-27 01:03 明明1109 阅读(2667) 评论(0) 推荐(0) 编辑