文字列を現在のTTYにリダイレクトする

文字列を現在のTTYにリダイレクトする

いくつかのコードがあります。

char *tty_name = ttyname(STDIN_FILENO);
char command[255] = "/usr/sbin/writevt -t "; strcpy(stpcpy(command + 21, tty_name), " -T ' \r'"); system(command);

現在のTTYに「空白」と「キャリッジリターン」を書き込みます。これは私の使用に適しています。しかし、これを達成するより簡単な方法があるかどうか疑問に思います。私はこれを試しました:

echo -e " \r > $(tty)"

しかし、動作しません。

ベストアンサー1

代わりにこれを書くことができますopen(2) /dev/tty

#include <err.h>
#include <fcntl.h>
#include <stdio.h>

int main(void)
{
    int ttyfd;
    if ((ttyfd = open("/dev/tty", O_WRONLY)) == -1)
        err(1, "open /dev/tty failed");
    printf("test1\n");
    dprintf(ttyfd, " \rxxx");
    printf("test2\n");
    return 0;
}

" \r"次の行に記載されている内容によっては破損する可能性があるため、それ自体は表示されない場合があります。)

おすすめ記事