跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 老弟兴奋的说:哥,我发现了 Linus Torvalds git 代码里的 bug
未分類
5 10 月 2020

老弟兴奋的说:哥,我发现了 Linus Torvalds git 代码里的 bug

老弟兴奋的说:哥,我发现了 Linus Torvalds git 代码里的 bug

資深大佬 : 52coder 6

读大三的老弟最近喜欢上了 c/c++,看 c/c++的源码,他告诉我他发现了 Linus Torvalds git 仓库里的 bug (程序 bug + 内存泄露 + 段错误),然后我说你赶紧提 PR 呀,看了半天他说的其中一个 bug init-db.c 没发现问题,各种怀疑人生,一问才知道是第一版 git. 其中一个 bug

sha1_dir = getenv(DB_ENVIRONMENT); if (sha1_dir) {  struct stat st;  if (!stat(sha1_dir, &st) < 0 && S_ISDIR(st.st_mode))   return 0;  fprintf(stderr, "DB_ENVIRONMENT set to bad directory %s: ", sha1_dir); } 

stat 返回 0 或 -1,非零加!结果为 0,0 加!结果为 1,这里<0 条件永远不成立?各位老哥们,这里我没理解错吧,别误导了我弟,哈哈哈哈。

顺带求一份适合深入学习的 C++开源代码( C 的话老弟专心看 redis 了,时不时问我一些问题,我也跟着学习下 redis,到时候再被八股文,岂不美滋滋?)

大佬有話說 (17)

  • 資深大佬 : mywaiting

    虽然我不懂 C/CPP 但是我觉得 Linus 没有写错,是的,脑残粉就是这么无脑 [摊手~]~

  • 資深大佬 : timothyqiu

    你说的没错: https://github.com/git/git/commit/7fa6b4e7692926d2d07adee1ef8e277157929058#diff-8117edf99fe3ee201b23c8c157a64c95

  • 主 資深大佬 : 52coder

    @timothyqiu 感谢老铁,昨天太晚,没去翻提交记录

  • 主 資深大佬 : 52coder

    @mywaiting 看第一个版本的 git,我给我老弟讲要学习里面的理念(虽然我没看过,但这话放之四海皆准[doge])

  • 資深大佬 : mywaiting

    @52coder 第一个版本的 Git 单纯从代码上感觉没太多亮点,基本就是熟手的 C/CPP 水平

    然而可以从高处抽象出 tree 和 blob 这两个实现然后实现一套完整的分布式版本管理,整个思路和体系很值得学习

    化繁为简,用一千多行代码就高效完成整个系统的搭建,短小精悍,更是项目实现中的典范,这个才真值得学习

  • 主 資深大佬 : 52coder

    @mywaiting 是的,非常赞同你说的这个,当然我也建议我弟从提交记录开始往后躲看看,为什么要这么高,抽象和设计就要自己消化和吸收了。

  • 資深大佬 : DiamondY

    在 C 一般会这样定义,true:-1 false:0

    那样写也不算错,但去掉更准确,有些人或编译器会把 true 定义成 1

  • 資深大佬 : DiamondY

    @DiamondY #7 这里应该把编译器去掉,跟那没关系
    在有符号判断里面 ! 0 == -1

  • 主 資深大佬 : 52coder

    @DiamondY 不太明白兄弟你在说什么,你是不是理解混~和!的用法了?你方便提供个 demo 吗?

  • 主 資深大佬 : 52coder

    @DiamondY C 里一般 true 1 ,false 0,不是-1,即使是-1,上面那个代码也是错的,你可以写 demo 验证下。

  • 資深大佬 : hwdef

    源码,,既然看了 redis 的话,,可以看看另一个 k/v 数据库,leveldb,也值得学习,也不长。

  • 資深大佬 : DiamondY

    @52coder 是搞混了~和!,估计上午脑子进水了
    C 里面判断只是认为 0 值为 false,非 0 就是 true,虽然标准库里面 true 是定义成 1,但定义成-1 也没错的

  • 主 資深大佬 : 52coder

    @hwdef 感谢推荐,leveldb 和 redis 有种相互补充的感觉,哈哈哈,多谢推荐

  • 資深大佬 : berrx

    哥, 咱家有钱了

  • 主 資深大佬 : 52coder

    @berrx 哈哈哈哈,要是这样做梦都笑醒了,可是农村不会拆迁,哈哈哈哈

  • 資深大佬 : maigebaoer

    害,我们这些应用侧的,还是直接背八股文吧

  • 主 資深大佬 : 52coder

    @maigebaoer 我也应用测的,主要 java,偶尔 go,看看 redis 源码,再背八股文可能好背一些吧.

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具