gpt4 book ai didi

linux - 操作系统确定内核或某些用户程序的输入

转载 作者:太空宇宙 更新时间:2023-11-04 09:59:17 24 4
gpt4 key购买 nike

操作系统如何将用户输入识别为命令或某个程序的输入?示例:

chmod

这是一个更改访问权限的命令,但是当我运行一个程序时,假设某个程序要求输入,那么该输入是如何专门指定给该程序的?

从我的角度来看,当我们在命令行屏幕上输入内容时,它首先会进入某个缓冲区,然后需要某种用户/系统模式才能将该输入传输到正在运行的程序或内核。但是操作系统如何区分这一切?

最佳答案

它因操作系统和 UI 的构建方式而异。大多数多窗口系统都有一些焦点 的概念,即键盘、鼠标等输入被传递到的地方。在基于 UNIX 的系统的终端窗口中,规则在 http://pubs.opengroup.org/onlinepubs/9699919799/ 中有详细描述。 .在没有作业控制的情况下,如下面的程序所示,程序会竞争 tty 输入;根据 tty (stty) 的行编辑模式,您可以获得不同的结果:

#include <stdio.h>
#include <unistd.h>
int main() {
char buf[100];
fork();
int n;
while ((n = read(0, buf, sizeof buf)) > 0) {
printf("%d: %*s\n", getpid(), n, buf);
}
return 0;
}

关于linux - 操作系统确定内核或某些用户程序的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57638201/

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