10min快速上手OSpre——make与重定向

前言 虽然现代的IDE已经提供了较为完善的c编译手段,使得程序员只需注意程序的设计,而不必考虑编译路径。然而学习make还是有其特有的作用的,特别是当你使用学校的电脑写c时😢。 什么是make? 在介绍mke之前,我们先来看看我们要如何使用gcc(GNU C Compiler)编译C语言: 意思是使用gcc编译器,编译hello.c,并将编译后生成的可执行程序命名为hello。 假如说要使用的程序有100个.c文件,难道每次编译都要写100次gcc命令吗,能不能只写一次编译命令到一个文件里,然后每次需要编译时执行那个文件就行?于是make便诞生了。 让我们使用make的方法编译上面的程序,首先编写Makefile文件: 这相当于告诉make:hey,make,检查hello文件,如果需要编译,你需要依赖hello.c文件,在依赖完成后,执行 这个指令。归纳一下,makefile可以表达为 需要注意的时make时增量编译的,所以尽量将target任务文件命名为command生成的文件,关于这部分内容的详细解释,见文档。 重定向 虽然管道键 | 可以连接命令与命令: 但是却不能连接命令与文件(文件和文件是什么呢?cp,cat…),而重定向解决了这个问题,将input.txt作为输入,交给calc可执行文件处理: 如果想要把 ./calc 程序的结果输出到outcome.txt: 综合一下,启动./calc程序,用input.txt作为输入,outcome.txt作为输出: 总结一下: 符号 作用 记忆点 > 覆盖输出 漏斗指向文件,旧的冲走 >> 追加输出 漏斗指向文件,叠在一起 2> 重定向错误 专门管报错 < 输入重定向 文件流向命令 练习题 接下来让我们看回OSpre的题目: 我们需要做: 1.调用casegen生成测试样例,重定向到特定文件中。 2.合并文件 3.调用calc计算合并的文件 4.清除 1.生成测试样例,重定向到特定文件中 2.合并文件 3.调用calc计算合并的文件为out 4.清除 这里的.PHONY是为了让make每次都执行clean。 最终代码: 以下是make的依赖树:

服务器选择与学生优惠的申请

云服务器提供商的选择 对于运行 Minecraft (MC) 服务器来说,延迟(ping 值)是核心痛点——玩家在中国大陆的话,服务器延迟越低越好(理想 <50ms,开黑不卡顿)。我亲自试过 DigitalOcean (DO)、Microsoft Azure、阿里云和腾讯云,在学生优惠加持下,综合体验(性价比 + 延迟 + 稳定性)阿里云最香。 提供商 学生优惠额度 中国大陆延迟(选本地/最近节点) 性价比 & 推荐场景 备注 阿里云 300元/年 无门槛代金券(可叠加活动买低配机几乎0元) 低(30ms 内) ★★★★★ 最佳选择:延迟低、学生福利强、ECS 配置灵活 推荐大陆学生首选,买 2核4G 轻松覆盖 腾讯云 1.3折左右学生价(轻量/云服务器特惠) 低(30ms 内) ★★★★☆ 延迟相当,备案友好,轻量应用服务器便宜 适合想快速备案建站或小程序联动 DigitalOcean 新用户 200$ 信用额(约 1400元) 高(最近新加坡,300ms+) ★★☆☆☆ 延迟太高,不适合 MC 开黑 适合静态网页、海外项目 Microsoft Azure 学生 100$ 信用额 … Read more

Docker push的血泪教训——代理配置与用户名大小写

docker,一个环境管理软件,有着和github类似的dockerhub,同样的也有着和git一样的代理配置麻烦。依稀记得有朋友也曾苦于链接超时而在朋友圈求助,只是当时我连博客的想法都没有,更别说docker了。话题有点远了,总之,这篇博客将记录我在个人电脑(windows)上的配置过程(服务器的配置很麻烦,所以我都直接用DO来租的服务器,也许之后有机会我会更新的?),希望能帮到有希望的人。 想在win上使用docker,你需要下载docker-desktop,以下内容将默认你已完成docker-desktop的下载,同时由于docker运行需要linux内核,所以也将默认你已下载wsl(Windows Subsystem for Linux).这里有一篇快速介绍并上手docker的博客:(如果你看到这段话,说明我还没写) 第一步:docker-desktop GUI的设置 进入docker-desktop在GUI界面里点击设置(小齿轮) 在resources选项卡里选择proxies,启动Manual proxy configuration 输入你的代理端口号,其中http是代理类型,127.0.0.1是本地ip,:7897是代理端口,关于如何书写这部分可以查看这篇博客的前置知识部分:告别 15KiB/s!Windows 下 VS Code 与 Git 代理配置指南 – QzlabQ’s blog 设置完后,点击apply,重启终端和docker-desktop,通常来讲这样就已经可以走代理了,尝试以下代码,如果没有报Timeout或者EOF就已成功: 坑点注意:虽然Docker Hub 用户名在创建时不区分大小写(qzlabq 和 QzlabQ 指向同一个账户),但在镜像路径中使用时必须完全匹配你登录时的用户名(通常是创建时的小写形式)。请再三确认自己的账号名: