如何使用 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");
}
我正在尝试为我的用户向所有终端发送消息。
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");
}