小编vin*_*c17的帖子

如何获取控制终端的真实姓名?

如何获得控制终端的真实名称(如果有,否则为错误)作为路径名?

“实名”是指 not /dev/tty,其他任意进程不能使用它来指代同一个终端。如果可能,我更喜欢将答案作为简单的 shell 代码(如下例所示),否则作为 C 函数。

请注意,即使标准输入被重定向,这也必须工作,因此tty无法使用该实用程序:not a tty在这种情况下会出现错误,因为tty只打印连接到标准输入的终端的文件名。

在 Linux 下,可以使用:

echo "/dev/`ps -p $$ -o tty | tail -n 1`"
Run Code Online (Sandbox Code Playgroud)

但这不是可移植的,因为根据 POSIX,终端名称的格式是 unspecified

关于 C 函数,ctermid (NULL)returns/dev/tty在这里没用。

注意:根据zsh文档,应该能够做到

zsh -c 'echo $TTY'
Run Code Online (Sandbox Code Playgroud)

但是当标准输入和标准输出都被重定向时,当前(版本 5.0.7)会失败:

$ zsh -c 'echo $TTY > /dev/tty' < /dev/null
/dev/pts/9
$ zsh -c 'echo $TTY > /dev/tty' < /dev/null > /dev/null
/dev/tty
Run Code Online (Sandbox Code Playgroud)

shell terminal tty controlling-terminal

13
推荐指数
2
解决办法
4290
查看次数

应用补丁时的“模糊”是什么?

我在 Debian 包装中应用了一个带有 quilt 的补丁,但发生了错误:

Applying patch debian/patches/fixshare.patch
patching file net/slirp.c
Hunk #1 FAILED at 529.
1 out of 1 hunk FAILED -- rejects in file net/slirp.c
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了一下,我知道这个错误是因为应用补丁时的“模糊”。现在,我的问题是什么是模糊以及如何解决应用被子补丁的问题?

我已经阅读了这篇文章并执行了它所说的步骤,但仍然有问题!

patch quilt

8
推荐指数
1
解决办法
8692
查看次数

挂载没有分区的SD卡

我尝试在 GNU/Linux 下挂载 SDHC 卡。与通常发生的情况不同,/var/log/syslog没有提及sdb1,只是:

Jul 26 16:07:53 xvii kernel: [  159.404842] scsi 6:0:0:0: Direct-Access     Singim   SD Card   MMC/SD 1.4F PQ: 0 ANSI: 0 CCS
Jul 26 16:07:53 xvii kernel: [  159.405115] sd 6:0:0:0: Attached scsi generic sg2 type 0
Jul 26 16:08:01 xvii kernel: [  168.239600] sd 6:0:0:0: [sdb] Attached SCSI removable disk
Run Code Online (Sandbox Code Playgroud)

而且fdisk -l /dev/sdb什么都不输出。我该怎么办?

编辑(2014-07-27):我可以再次拥有这张SD卡,但它似乎有问题。昨天,我正在通过 USB 读卡器尝试它。今天,我直接把它放在我笔记本电脑的SD插槽中试了一下,我得到了数千个I/O错误:

Jul 27 11:56:35 xvii kernel: [ 8091.317234] mmc0: new high speed SDHC card …
Run Code Online (Sandbox Code Playgroud)

linux mount sd-card

5
推荐指数
1
解决办法
7687
查看次数

标签 统计

controlling-terminal ×1

linux ×1

mount ×1

patch ×1

quilt ×1

sd-card ×1

shell ×1

terminal ×1

tty ×1