Linux C API 获取本机的 IP 地址
方法1:遍历网卡
1#include <stdio.h>
2#include <ifaddrs.h>
3#include <arpa/inet.h>
4
5int main (void) 1#include <stdio.h>
2#include <ifaddrs.h>
3#include <arpa/inet.h>
4
5int main (void) Hook 是一种覆盖重写进程中符号的技术,在 Linux 中,通过环境变量 LD_PRELOAD 预加载包含同名符号的动态库即可实现。
1// 文件名: memcheck.c
2// 编译命令: gcc -o memcheck.so memcheck.c --shared -fPIC
3#define _GNU_SOURCE通过 fork 创建进程后,父进程可以使用 waitpid 来获取子进程的结束状态。
如果子进程先于父进程退出,而父进程没有调用 waitpid 的话,子进程将一直存续下去以保持结束状态可以被获取。
此时,子进程被称为僵尸进程。
如果子进程没有被调用 waitpid 而父进程退出了,此时子进程被称为孤儿进程,它会被 init进程(PID为1) 领养并调用waitpid回收。
有时我们并不关心子进程的结束状态,希望像 pthread_detach 一样示释放子进程。有以下两种方法可以实现:
1// gcc main.c -lpam
2
3#include <stdio.h>
4#include <stdlib.h>
5#include <string.h>
6#include <unistd.h>
7#include <termio.h>1// apt install libasound2-dev
2// LDFLAGS := -lasound
3#include <stdio.h>
4#include <stdlib.h>
5#include <alsa/asoundlib.h>
6
7int main(int argc, char* argv[])1// libs: -lpulse
2#include <stdio.h>
3#include <stdlib.h>
4#include <errno.h>
5#include <string.h>
6#include <stdbool.h>
7#include <pulse/pulseaudio.h>1
2#include <stdio.h>
3#include <stdlib.h>
4#include <string.h>
5#include <errno.h>
6#include <stdint.h>
7#include <stdbool.h>SEO 友好的纯静态 Markdown 博客系统
SEO-friendly pure static Markdown blog system
PPM 是一种很方便的图片文件格式,它的结构为:
1PPM类型标识
2图像宽度 图像高度 颜色的最大值
3R G B R G B R G B R G B R G B R G B ...| PPM类型标识 | 图像类型 | 数据表示方式 |
将下载链接的域名改为 vscode.cdn.azure.cn,这是微软在国内的 CDN 地址。
例如 https://az764295.vo.msecnd.net/stable/899d46d82c4c95423fb7e10e68eba52050e30ba3/code_1.63.2-1639562499_amd64.deb
改为 https://vscode.cdn.azure.cn/stable/899d46d82c4c95423fb7e10e68eba52050e30ba3/code_1.63.2-1639562499_amd64.deb
可以使用下面的 Python 脚本进行下载:
1undefined