如何设置生成程序的读/写设备?

如何设置生成程序的读/写设备?

我不知道这是否可能,但我不知道如何研究这个概念。是否可能,如果我该如何...

创建一个设备文件(即/dev/remoteclip),当写入或读取时,该文件将生成程序或 shell 脚本?

用例是将文本共享到远程剪贴板。例如,我看到我的 Linux 盒子旁边有一台 Mac。按照目前的情况,我可以执行以下操作来共享内容:

$ ssh macbox "pbcopy" < myFile
$ ssh macbox "pbpaste" > myFile

我想知道 Linux 文件系统上是否有可能有一个设备或 FIFO,当您写入它时,它会执行 ssh 命令:

$ cat myFile >> /dev/macbook-clipboard
$ cat /dev/macbook-clipboard > myFile

这样编辑器和其他程序就可以简单地写入设备/FIFO。

这更多的是关于这是否可能以及如何实现的学习练习。这不是必需的,而且其优点可能纯粹是学术性的,然后在典型的工作流程中很有用。

答案1

我找到了一种方法来实现这一点。它需要创建一个后台进程来持续从 FIFO 中读取数据。例如:

$ mkfifo hopper
$ while :; do ssh macbox "pbcopy"; done < hopper &
$ cat myFile >> hopper

(谢谢这个答案

现在我不完全理解这一点,但我愿意猜测< hopper周围的 while 循环会阻塞循环,这就是为什么 CPU 不会出现煎鸡蛋并且当没有数据被输送到 FIFO 时的原因不是闲置的零散 SSH 会话。

所有这些 *Unix 工具的深思熟虑和前瞻性给我留下了深刻的印象。老实说,我不明白为什么学校要教授这一点,也不明白为什么现代软件开发都是为了重新发明这些古老的轮子。惊人的!


结束以上过程使用kill %1

相关内容