• ppd0705
    置顶
    2022-03-13
    看了半天也没看懂 tgmath.h 怎么实现泛型的,有大佬帮忙指点一二吗?

    作者回复: 可以尝试看看 musl 中的实现:http://git.musl-libc.org/cgit/musl/tree/include/tgmath.h

    共 2 条评论
    
  • zxk
    2022-02-01
    如果把 strncpy 函数中第三个参数使用的 strlen 函数更换成 sizeof,那么程序运行会得到什么结果?为什么? 会得到 14 个连续的 b。这是由于 sizeof 得到的长度为 7,会导致 strA 的终止符被替换成 b,后面再次读取 strA 的时候由于无法识别到终止符,会继续读取,直到读取到 strB 的终止符才结束。两个字符串加起来就是 14 个 b。

    作者回复: 回答正确!

    共 5 条评论
    6
  • Ping
    2021-12-29
    老师能不能介绍一下musl这个库的特点和用途?

    作者回复: musl 其实跟我们常用的 glibc(GNU C Library)类似,两者同属于 C 标准库(libc)的一种实现。只是相对来说,glibc 实现较为臃肿,健壮性稍差,存在的潜在漏洞也多。但是实现的功能众多(有很多 C 标准以外的),且使用也很广泛。而 musl 则旨在提供一个轻量级的、ABI 稳定的、且适用于移动设备和嵌入式系统的 libc 实现。它支持的功能上则对标 C 标准。

    
    3
  • 白花风信子
    2021-12-29
    学到好多细节!不过老师会在后面再深入提提elf文件是怎么加载的嘛qwq。

    作者回复: 会的哈,我们会在下一个模块中介绍的。

    
    3
  • serika
    2022-12-04 来自湖北
    为什么我 pgrep string | xargs -I {} cat /proc/{}/maps 这条指令打印不出来任何信息呀。 虽然第二条指令可以生效,也可以看见字符串的内容,但是地址却和程序本身打印的不一样。 这是有什么地址保护的机制吗。 我的环境是 ubuntu22 ,gcc 的版本是 11.3.0 。

    作者回复: 可以先看看前半部分命令 “pgrep string” 打印的内容是什么。

    
    
  • fei
    2022-08-05 来自浙江
    pgrep string | xargs -I {} cat /proc/{}/maps 这条命令执行时,string进程老早退出了。这个实验要怎么来做呢?

    作者回复: 是在什么系统上测试的?

    共 2 条评论
    
  • 徐雅清
    2022-06-12
    为什么我在线编译,isalpha(c)的结果是1024呢,复制的老师的代码

    作者回复: 很好的问题!需要注意的是,实际上包括 isalpha 在内的一系列字符判断函数,它们的行为是在满足函数格式要求的情况下返回“非零值”,否则返回 0。而这里的非零值具体是多少则视不同的编译器而定。

    
    
  • 龍蝦
    2022-03-02
    而使用数组形式定义的字符串 strA ,则是将该字符串的数据从 .rodata 中复制到了其他地方,strA 的值为复制后该字符串第一个字符的所在地址。 老师,数组形式定义,应该是在栈上直接定义局部变量吧? #include <stdio.h> int main(void) { const char strA[] = "a"; const char* strB = "a"; return 0; } .LC0: .string "a" main: push rbp mov rbp, rsp mov WORD PTR [rbp-10], 97 mov QWORD PTR [rbp-8], OFFSET FLAT:.LC0 mov eax, 0 pop rbp ret

    作者回复: “数组形式定义,应该是在栈上直接定义局部变量吧?”是的哈。我们这里文中提到的“复制”是指对同样的这段数据,编译器会通过其他的方式使用,并不是说在机器指令层面有复制的过程。

    
    
  • shk1230
    2022-02-26
    什么叫泛型宏?

    作者回复: 这里实际上就是对 tgmath.h 中的这些支持泛型参数的宏函数简称哈。

    
    
  • ppm
    2021-12-29
    写了一个strtok https://gist.github.com/goog/f41b7b7fcdb7e9de93606c370c9d22b5

    作者回复: 👍🏻

    
    