/ / Як написати термінал UNIX через системні виклики? - c, unix

Як записати на термінал UNIX через системні виклики? - c, unix

Я працюю на "С" досить давно.

Я хотів би сказати "Привіт" моїм колегам, коли вони відкривають термінал і вхід в систему в перший раз на день

Я знайшов це повідомлення корисним

Не вдається прочитати дані з іншого терміналу за допомогою системного виклику read ()

Як я можу писати інші термінали (тому що, в pts / n - n буде відрізнятися від людини до людини) і сказати вітальне повідомлення?

Відповіді:

0 для відповіді № 1

Це, мабуть, найпростіший з програм, з якими ви можете отримати багато підтверджень та обробки помилок тощо.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>


int main ( int argc, char *argv[] )
{
if ( argc != 3 ) {
fprintf(stderr, "usage : msend "terminal" "message" ");
exit(1);
}

char filePath[256] = {0,};

if ( strncmp( argv[1], "/dev/pts", strlen("/dev/pts") ) )  {
sprintf( filePath, "/dev/%s" , argv[1] );
} else {
sprintf( filePath, "%s", argv[1] );
}

int fd = open( filePath , O_RDWR , O_APPEND);

write( fd, argv[2], strlen(argv[2]) );

return 0;
}

Спробуйте побудувати на вершині цього.