gpt4 book ai didi

c++ - shell -内核交互

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:17:03 27 4
gpt4 key购买 nike

我正在尝试用 C 和/或 C++ 为 Linux 编写一个 shell。我应该使用哪些函数与内核交互?有人说用system(),我觉得是调用shell,会无限递归。其他人说了一些关于 fork()exec() 的事情。

显然,一个好的 shell 需要一些方法来访问文件系统。我假设内核为此提供了某种接口(interface),不是吗?我将如何读取内核的输出?是文本还是整数?

是否可以在某个地方找到有关必要功能的良好文档?是否有我应该阅读的特定手册页或源代码文件?

最佳答案

内核为低级进程执行和文件系统访问提供了一组“系统调用”。流程执行通常使用 fork() 完成和 exec() family calls 之一. I/O 可以通过诸如 open() 之类的调用来完成, stat() , opendir()

可以在 Open Group Base Specification 中找到大多数更便携的调用(包括 C 库和系统调用)的列表。 (单击“系统接口(interface)”)。还有一些 linux 特定的 - 用于普通用途的那些将记录在手册页的第 2 部分(ls/usr/share/doc/man/man2man 2 一些函数).

关于c++ - shell -内核交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8529937/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com