小编tut*_*uen的帖子

Linux系统调用,libc,VDSO和实现解析

我在最后一个libc中剖析了syscall调用:

git clone git://sourceware.org/git/glibc.git
Run Code Online (Sandbox Code Playgroud)

我在sysdeps/unix/sysv/linux/i386/sysdep.h中有这个代码:

#   define INTERNAL_SYSCALL_MAIN_INLINE(name, err, nr, args...) \
LOADREGS_##nr(args)                         \
asm volatile (                          \
"call *%%gs:%P2"                            \
: "=a" (resultvar)                          \
: "a" (__NR_##name), "i" (offsetof (tcbhead_t, sysinfo))        \
  ASMARGS_##nr(args) : "memory", "cc")
Run Code Online (Sandbox Code Playgroud)

如果我理解这段代码,那么LOADREGS _ ## nr(args)宏会将参数加载到寄存器ebx,ecx,edx,esi,edx和ebp中.

sysdeps/UNIX/SYSV/LINUX/I386/sysdep.h中

# define LOADREGS_0()
# define ASMARGS_0()
# define LOADREGS_1(arg1) \
    LOADREGS_0 ()
# define ASMARGS_1(arg1) \
    ASMARGS_0 (), "b" ((unsigned int) (arg1))
# define LOADREGS_2(arg1, arg2) \
    LOADREGS_1 (arg1)
# define ASMARGS_2(arg1, arg2) \
    ASMARGS_1 (arg1), "c" ((unsigned …
Run Code Online (Sandbox Code Playgroud)

c linux libc system-calls vdso

7
推荐指数
1
解决办法
373
查看次数

Windows 上的 CA 证书目录

我用 C 语言制作了一个网络客户端,通常我使用 Linux,但我不知道 CA 证书如何在 Windows 上工作。而且windows的手册也不是很好。

Windows 上默认存在 CA 证书目录(根目录)吗?

就像linux下的/etc/ssl/certs/目录,这是CA证书的列表。

我需要这个来改编一个与 openSSL 一起使用的程序。

你能帮助我吗?先感谢您。

windows openssl certificate

5
推荐指数
1
解决办法
2万
查看次数

打印"\ x09",打印0x20,如何打印0x09到STDOUT?

我尝试打印到STDOUT 0x09(水平TAB)值,但在perl,python或bash 0x09被0x20(空格)替换.

$ hexdump -C <<< $(perl -e 'print "A\x09B" ')
00000000  41 20 42 0a                                       |A B.|
00000004
Run Code Online (Sandbox Code Playgroud)

bash中的同样问题:

$ hexdump -C <<< $(printf "A\x09B")
00000000  41 20 42 0a                                       |A B.|
00000004
Run Code Online (Sandbox Code Playgroud)

可以将0x09值打印到STDOUT吗?

python bash perl

0
推荐指数
1
解决办法
406
查看次数

标签 统计

bash ×1

c ×1

certificate ×1

libc ×1

linux ×1

openssl ×1

perl ×1

python ×1

system-calls ×1

vdso ×1

windows ×1