如何用 C 语言练习 Unix 编程?

2024-05-09

经过五年的专业 Java(以及较小程度上的 Python)编程并慢慢感觉到我的计算机科学教育逐渐消失,我决定要拓宽我的视野/对世界的一般用处,并做一些(对我来说)感觉更重要的事情就像我真的对机器有影响一样。我选择学习 C 和 Unix 编程,因为我觉得这是许多最有趣的问题所在。

我的最终目标是能够专业地完成这项工作,如果没有其他原因,除了我每周必须花 40-50 小时在工作上支付账单,所以这也可能是我的编码类型想要变得更好。当然,你不会被雇用去做你以前没有做过的事情,所以现在我正在自己努力。

为此,我从 K&R 开始,这是一个很好的资源,部分原因是练习遍布每一章。之后我继续计算机系统:程序员的视角 https://rads.stackoverflow.com/amzn/click/com/013034074X,接下来是十章Unix 环境中的高级编程 https://rads.stackoverflow.com/amzn/click/com/0131411543。当我读完这本书时,我会读Unix网络编程 https://rads.stackoverflow.com/amzn/click/com/013490012X.

我在史蒂文斯的书中缺少的是缺乏编程问题;它们主要记录功能并提供示例,然后是一些章末问题。我觉得,如果我接受挑战,按照 K&R 的方式使用每一章中的知识,我会受益匪浅。我可以为每个函数编写一些测试程序,但这是一个不太理想的方法,因为(1)我可能会比面对一些外部挑战时更有动力,(2)我自然只会考虑使用该函数以我已经想到的方式。

所以,我想得到一些关于如何练习的建议。显然,我的第一选择是找到一些具有 Unix 编程挑战的资源。我还考虑过寻找并尝试为一些开源 C 项目做出贡献,但这有点令人畏惧,因为学习使用该软件然后学习代码库会产生一些开销。我能想到的唯一经常使用的开源 C 项目是 Python,我不确定它是否容易上手。

也就是说,我愿意接受各种建议,因为有些事情我什至没有想到。


重新发明了许多核心 Unix 实用程序。其中大部分都是(并且仍然)用 C 编写的,因此它们是开始学习的好方法。根据您的技能,选择更难或更容易的实用程序来复制。

尝试编写自己的 malloc。您将学到很多有关 Unix 和 C 编程的知识。

谷歌提供计算机科学操作系统课程并在那里做项目。许多学校在公共网站上都有这些项目,因此您可以获得所需的一切。Here http://www.cs.purdue.edu/homes/cs354/是普渡大学网站的链接。尝试一下 shell 项目;这很困难,但确实很有教育意义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用 C 语言练习 Unix 编程? 的相关文章

  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co

随机推荐