简 述: 讲解在 Unix / Linux 下,man 手册的使用;写了一个例子调用系统库函数来读写文本文件,和打印文件描述符;阻塞和非阻塞实际是文件的属性,而非标准输入输出的 I/O 函数的属性。 以及文件详细描述的 stat 命令和 stat() 函数的使用;文件属性相关的操作;文件夹遍历和创建、删除的相关函数,可能 Linux 有时候会调用到他们,现在实际上,更多的使用 Qt 的库来对文件进行读写操作;以及关于复制文件描述符的函数 dup() 函数的讲解

  简 述:Linux 中,对于一些经常会使用到的命令(不做知识点的搬运工),作业个简短的记录📝,主要作为日后快速查找。还有对于操作系统的主次版本号的含义,shellbash 的区别等简单做一个说明。主要有如下知识点:

  • Linux 和 GNU 的区别
  • shell 和 bash 的区别
  • 光标相关快捷键
  • 文件目录的结构组成,
  • 文件 / 文件夹操作命令 tree,pwd,mkdir,rm,cp,mv,touch
  • 显示文件相关信息 cat,more,head,less,tial
  • 软硬链接 ln -s
  • 用户组,权限 chmod, chown
  • 文件查找和检索文件内容 find,grep
  • 压缩与解压 tar,rar,zip,gz,bz2

  简 述: 在 mac 使用 gdb 调试程序时候,会遇到报错如下,本文就是专门解决这个问题的。

(gdb) run
Starting program: /Users/muli/project/github/linuxExample/06_gdb/mainApp 
Note: this version of macOS has System Integrity Protection.
Because `startup-with-shell' is enabled, gdb has worked around this by
caching a copy of your shell.  The shell used by "run" is now:
    /Users/muli/Library/Caches/gdb/bin/zsh
Unable to find Mach task port for process-id 20050: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))

在 MacOS 10.14.6 的系统下,发现安装 gdb 8.3 (当前最新) 的坑不是一般的多,那真真的多。鉴于网上的教程都是过时的,且按照某一篇, 你是不可能顺利运行安装成功的。所以浪费我昨天一个晚上解决这个问题(我的时间也很宝贵的),今天又花费一晚上时间,完成这篇图文并茂的的安装教程。作为一个日后的记录和给后来者一个方便。

是目前网上最新最详细的在 mac 安装 gdb 的教程 ;其中大概思路:

  • 创建整证书,证书授权
  • 关闭 SIP 安全防护,重启系统;
  • sudo 运行 gdb 调试;
  • kill 卡死进程, 再次重新 gdb 调试;
  • 成功