从系统调用角度看unix,linux文件权限
写在前面
最近开始看APUE, 其中文件访问权限部分一开始有点不懂, 后来发现就是简单的chmod命令的宏形式, 下面简单总结一下, 参考<sys/stat.h>.
文件权限
st_mode
含义
八进制值
英文注记
S_IRUSR
用户读
4
READ USER
S_IWUSR
用户写
2
WRITE USER
S_IXUSR
用户执行
1
EXEC USER
...
在m1mac上配置mit6.s081的riscv系统环境
写在前面
最近想学一下OS的一些内容, 斟酌良久, 选择MIT的6.SO81课程(2021), 链接:6.S081 / Fall 2021 (mit.edu).
第一步先从配置Lab环境开始, 由于我的mac是M1芯片, 安装RISCV花了不少时间, 不过还是在强大的开发者帮助下完成了, 下面记录一下. 参考了课程主页的工具链配置部分1.
安装基本工具
首先需要安装包管理工具brew, 这里可以看我之前的文章, 写的相当详细了. 这里直接从brew安装之后说.
brew tap riscv/riscv
brew install riscv-tools # 这步需要的时间很长
brew install qemu
上面的第二步我遇到了一个问题:
When I install...
力扣面试题寻找消失的两个数字多解法总结
题目
面试题 17.19. 消失的两个数字
难度困难
给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗?
以任意顺序返回这两个数字均可。
示例 1:
输入: [1]
输出: [2,3]
示例 2:
输入: [2,3]
输出: [1,4]
提示:
nums.length <= 30000
分析与代码
这里一开始我想的当然是用下面这种方法, 但是可惜, 时间复杂度飙升, 直接TLE:
class Solution:
def missingTwo(self, nums: List[int]) -> List[int]:
ans=[]
...
不使用oh My Zsh配置轻量级zsh环境
写在前面
之前一直在用一款名为oh-my-zsh的插件, 在我的MacOS上, 配置起来主题以及各种插件都比较方便, 但是, 最近在archlinux上面, 我用了omz之后, 速度下降了很多(archlinux虚拟机,还是采用架构虚拟化的方式,在arm上模拟出x86_64), 于是我就想着卸载omz然后直接安装代码补全和高亮插件, 这里参考了一篇国外开发者的博客1, 主要用到的插件是:
zdharma-continuum/fast-syntax-highlighting: Feature-rich syntax highlighting for ZSH;
zsh-users/zsh-autosuggestions: Fish-like autosuggestions f...
Sublime使用clang Format格式化c,c++代码
写在前面
前几天刚吹捧完Astyle这款代码格式化插件, 最近又不得不进行改变了, 原因就是C++20中新增的三路比较运算符, 长这样:<=>, 使用Astyle一格式化就变成了:<= >, 鉴于这个问题, google也没给出合适的答案, 反而是一个两年前的bug issue还没修复1映入眼帘..
不得已, 我关闭了pad-oper这个选项, 使得Astyle在格式化C++时候不会在操作符两边填充空格, 但是这就导致了代码比较紧凑, 看来接着用Astyle是不可能了.
下面还是看看使用mac原生的clang进行代码格式化的操作吧…
安装clang-format
光有xcode的开发者工具还不行, 还要用brew安装llvm后端支持, 并将其添加到配置...
Sublimeastyle针对c++20三路运算符的格式化调整
写在前面
之前文章介绍过关于在sublime编辑器中格式化C/C++ 代码的最佳方式, 但是昨天尝试用C++20新增的三路运算符时候突然被格式化掉了, 具体例子如下:
auto ans1 = a <=> b;
// 被格式化为
auto ans1 = a <= > b;
这就成了一个显然的语法错误了, 一开始我想通过更新插件或者看issue的方式解决, 但是这个项目已经不活跃了, 没办法,只能靠自己了.
配置方法
首先进入官方文档1, 但是选项太多了, 找起来不方便… 后来参考的gist2, 还是不错的, 通过在家目录下配置.astylerc文件完成配置, 这里除了复制全部的内容并新建文件, 还需要修改一个选项, 如下:
cd ~
vim .ast...
Sublime和iterm中使用firacode符号连接字体的配置
写在前面
最近在medium1看到一款不错的字体, 名叫FiraCode, 其主要特色功能就是能够将诸如大于等于号>=, 箭头符号->这样的复合符号连接起来,产生一种很棒的效果, 具体效果这里就不展示了, 可以看官方GitHub主页2.
下面主要讲一下如何在macOS中配置这个字体, 主要展示在sublime和iTerm中进行字体配置.
安装字体
brew tap homebrew/cask-fonts
brew install --cask font-fira-code
sublime配置字体
在settings文件里面写入:
"font_face": "fira code",
保存即可生效.
iTerm配置字体
这里面有一点小的不同,需要在adv...
C语言宏的几种用法
写在前面
简单总结一下C语言中x-macros(宏)的几种主要用法, 虽然主流的C语言程序中一般是不推荐使用宏的, 但是作为一种不错的C语言语法糖, 了解一下也不错,至少能看懂点大佬的代码. 主要参考了C语言程序设计:现代方法第十四章预处理器.
基本语法
直接展开
其实就是简单的展开而已.
#include <stdio.h>
#define n1 100
#define M (n1*n1+3*n1)
int main() {
int sum;
sum = 3 * M + 4 * M + 5 * M;
printf("sum=%d\n", sum);
return 0;
}
这段程序中就是一个预处理器(宏)的简单用法, 直接...
共计 455 篇文章,57 页。
您是Zorch的第 个小伙伴
Hits