2015-09-19 5 views
-2

Я уже давно работаю над «С».Как написать терминалу UNIX через системные вызовы?

Я хотел бы сказать «Привет» в моих товарищей по команде, когда они открывают терминал и входа в систему в первый раз в день

Я нашел этот пост полезным один

Not able to read data from other terminal using read() system call

Как я могу написать другие терминалы (потому что в pts/n - n будет отличаться от человека к человеку) и сказать приветственное сообщение?

+1

Почему вы хотите читать с терминала? Вам нужно только написать ему, чтобы отобразить сообщение. (Который, кстати, ваши коллеги, скорее всего, будут только раздражать.) –

+0

@Ross Я отредактировал вопрос, и это был просто сценарий, созданный мной, чтобы узнать, как писать на любой терминал. –

+0

Вы спрашиваете, как писать терминал или как узнать, к какому терминалу нужно писать? –

ответ

0

Это, возможно, является самым простым из программ, которые вы можете получить с гораздо валидаций и обработки ошибок и т.д.

#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; 
} 

Try здание на вершине этого.

+0

Спасибо. я буду стараться изо всех сил –