如何使用 C (Linux) 向所有终端发送消息?

How to send message to all terminals using C (Linux)?

我正在尝试为我的用户向所有终端发送消息。

echo -e "\nHello" > /dev/pts/1

工作正常,但是

echo -e "\nHello" > /dev/pts/*

不起作用

而我需要通过C代码来实现。

像那样:

if(fork() == 0){
            execl("echo -e '\nHello' > /dev/pts/*", NULL);
            return 0;
        }

您可以简单地使用 bash 循环:

for f in /dev/pts/*; do echo -e "\nHello" > $f; done 

此外,您应该使用 "system" 调用 shell 命令。

#include <stdlib.h>
void main(void) {
    system("for f in /dev/pts/*; do echo -e '\nHello' > $f; done");
}