Recent Posts
-
December 07, 2020
Fuse文件系统启用page cache
fuse文件系统默认没有启用page cache的,需要配置mount选项 High-level mount options: These following options are not actually passed to the kernel but interpreted by libfuse. They can only be specified for filesystems that use the high-level libfuse AP...
-
November 23, 2020
Linux内核检查ip是否为本地接口的ip
内核有一个函数inet_lookup_ifaddr_rcu,但这个函数没有导出的,也可以inet_addr_type_dev_table这个获取路由项是否为本地ip来判断。ip_dev_find应该可以可以通过查找ip在哪个设备上来确人,不过这个麻烦些完了需要dev_put(dev);释放掉资源/* called under RCU lock */struct in_ifaddr *inet_lookup_ifaddr_rcu(struct net *net, __be32 addr){ ...
-
November 16, 2020
Openssl生成golang Grpc 自签名tls的v3_req证书
生成根证书的私钥```text选的椭圆曲线算法,后面生成server和client端的时候类似$ openssl ecparam -genkey -name prime256v1 -out root_ca.key也可以选RSA的吧,向下面这样$ openssl genrsa -out ca.key 2048``` 生成根证书x509格式(公钥)```text$ openssl req -new -x509 -days 40000 -key root_ca.key -out root_...
-
October 28, 2020
Golang修改设置全局默认resolver的dns的ip地址
package mainimport ( "context" "fmt" "net")func CloudflareDialer(ctx context.Context, network, address string) (net.Conn, error) { d := net.Dialer{} return d.DialContext(ctx, "udp", "1.1.1.1:53")}func main() { net.DefaultResolver.PreferGo = true n...
-
October 07, 2020
Golang的reflect包要使用unsafe才能修改结构的私有成员的值
poll.FD.ZeroReadIsEOF 控制文件读入0字节时,是否单做EOF错误返回, 因为linux的串口文件设置了超时会返回0字节,但不想把他单做错误来处理。func DisableiZeroReadIsEOF(conn Conn) { serialPort, ok := conn.(*serial.Port) if !ok { return } p := reflect.ValueOf(serialPort) if !p.IsValid() { return } f := p...
-
September 22, 2020
Windows10修改键盘映射禁用某个按键
好像是之前进过水,笔记本的win键出现问题了,不停的狂跳,要么一直处于key down状态,键盘上也没法输出了,还好按下大小写锁定后, 用shift + 可以输入密码登录。之前拆过笔记本想把键盘拿出来看一下,最后没成功,联想的都是一次性不可逆的塑料钉固定,拆了没法再 重新固定了,搞的键盘松松垮垮的。今天发现笔记本的键盘按键键帽也是可以直接扣出来的,直接用手往自己这个方向揭起来就可以了,但 只能看到键盘的软胶电路,也没法看清楚底下是怎么接触的。本来是想修改一下 https://github....
-
September 21, 2020
Gdb的ptype命令查看struct结构的各个子成员的内存布局
比较新的gdb的ptype命令支持/o选项,打印结构的内存布局了,类似pahole命令吧(gdb) help ptypePrint definition of type TYPE.Usage: ptype[/FLAGS] TYPE | EXPRESSIONArgument may be any type (for example a type name defined by typedef,or "struct STRUCT-TAG" or "class CLASS-NAME" or "u...
-
September 04, 2020
编译php 7.2 Configure配置 With Libzip时报告off_t错误
./configure –enable-zip –with-libzip 使用自己编译的libzip-1.7.3时,出现下面这个错误checking size of off_t... 0configure: error: off_t undefined; check your library configuration看网上介绍应该是php的配置脚本有问题,它的实际错误其实是ld 找不到libzip.so 文件吧,不知道php7.4有没有这个问题,上次编译php-7.4时用是系统l自带的i...
-
August 05, 2020
Php的swoole和grpc扩展一起使用时kill不能杀死swoole进程的问题 Grpc的fork模式问题
发现swoole的一个服务,用普通的kill总是杀不死,最后还是留一个进程在那里非要用 kill -9 才能结束掉。看了一下,进程是卡死在 grpc shutdown的信号量上面了。#0 0x00007f533454d48c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0#1 0x00007f53301ada52 in gpr_cv_wait () from /lib64/libgrpc.so.11#2 ...
-
July 28, 2020
Linux系统bash高级重定向之dev fd
[root@localhost ]# cat <(echo "test")testbash里面有这种高级用法,把输出直接通过重定向转给另外一个命令,类似管道| 重定向.http://www.gnu.org/software/bash/manual/html_node/Redirections.html/dev/fd/fdIf fd is a valid integer, file descriptor fd is duplicated./dev/fd 其实一个软连接指向/proc...