Guest User

siema

a guest
Jan 24th, 2020
77
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Zad 1
  2.  
  3. //Napisz program, który sprawdzi, czy z deskryptorem standardowego wejścia (stdin_fileno lub
  4. wartość 0) jest związany terminal. Jeśli tak, to program powinien wypisać nazwę pliku urządzenia
  5. tego terminala, oraz kilka jego bieżących ustawień.
  6.  
  7. //Kamil Różalski
  8.  
  9. //Grupa 14B
  10.  
  11. //gcc -Wall  -o 1 1.c
  12.  
  13.  
  14.  
  15. #include <stdio.h>
  16. #include <stdlib.h>
  17. #include <unistd.h>
  18. #include <errno.h>
  19. #include <termios.h>
  20.  
  21.  
  22. int main()
  23. {
  24.     int rc;
  25.     rc=isatty(STDIN_FILENO);
  26.  
  27.     if(rc==0)
  28.     {
  29.         if(errno=EINVAL)
  30.         {
  31.             printf("stdin to nie terminal \n");
  32.             exit(EXIT_SUCCESS);
  33.         }
  34.  
  35.         else
  36.         {
  37.             perror("isatty");
  38.             exit(EXIT_FAILURE);
  39.         }
  40.     }
  41.  
  42.     char *name=ttyname(STDIN_FILENO);
  43.     if(name==NULL)
  44.     {
  45.         perror("ttyname");
  46.         exit(EXIT_FAILURE);
  47.     }
  48.  
  49.     printf("ttyname: %s\n", name);
  50.  
  51.     struct termios tio;
  52.     rc = tcgetattr(STDIN_FILENO, &tio);
  53.  
  54.     if(rc == -1)
  55.     {
  56.         perror("tcgetattr");
  57.         exit(EXIT_FAILURE);
  58.     }
  59.  
  60.     printf("VMIN: %d\n", tio.c_cc[VMIN]);
  61.     printf("VTIME: %d\n", tio.c_cc[VTIME]);
  62.     printf("ECHO: %d\n", tio.c_lflag&ECHO?1:0);
  63.     exit(EXIT_SUCCESS);
  64.  
  65.  
  66. }
  67.  
  68.  
  69. Pytanie 2
  70. Zakończone
  71. Nie oceniono
  72. Nie oznaczony flagąOflaguj pytanie
  73. Treść pytania
  74. Zad 2
  75.  
  76. //Napisz program, który wyłączy echo, czyli wypisywanie znaków wprowadzonych z klawiatury na
  77. ekran. Po ponownym uruchomieniu program powinien przywrócić echo.
  78.  
  79. //Kamil Różalski
  80.  
  81. //Grupa 14B
  82.  
  83. //gcc -Wall  -o 2 2.c
  84.  
  85.  
  86.  
  87. #include <stdio.h>
  88. #include <stdlib.h>
  89. #include <unistd.h>
  90. #include <errno.h>
  91. #include <termios.h>
  92.  
  93.  
  94.  
  95. int main()
  96. {
  97.     int rc;
  98.     struct termios tio;
  99.     rc=tcgetattr(STDIN_FILENO, &tio);
  100.  
  101.     if(rc==-1)
  102.     {
  103.         perror("tcgetattr");
  104.         exit(EXIT_FAILURE);
  105.     }
  106.  
  107.     printf("Bylo ECHO: %d\n", tio.c_lflag &ECHO?1:0);
  108.     tio.c_lflag ^= ECHO;
  109.     printf("Ustawiam ECHO: %d\n", tio.c_lflag&ECHO?1:0);
  110.  
  111.     rc = tcsetattr(STDIN_FILENO, TCSANOW, &tio);
  112. }
  113.  
  114.  
  115. Pytanie 3
  116. Nie udzielono odpowiedzi
  117. Nie oceniono
  118. Nie oznaczony flagąOflaguj pytanie
  119. Treść pytania
  120. Zad 3
  121.  
  122. Pytanie 4
  123. Zakończone
  124. Nie oceniono
  125. Nie oznaczony flagąOflaguj pytanie
  126. Treść pytania
  127. Zad 4
  128.  
  129. //Napisz program, po którego uruchomieniu terminal będzie wypisywał wszystkie informacje dużymi
  130. literami (niezależnie od ustawienia CapsLock). Efekt ten powinno usuwać ponowne uruchomienie
  131. programu.
  132.  
  133. //Kamil Różalski
  134.  
  135. //Grupa 14B
  136.  
  137. //gcc -Wall  -o 4 4.c
  138.  
  139.  
  140.  
  141. #include <stdio.h>
  142. #include <stdlib.h>
  143. #include <unistd.h>
  144. #include <errno.h>
  145. #include <termios.h>
  146.  
  147.  
  148.  
  149. int main()
  150. {
  151.     int rc;
  152.     struct termios tio;
  153.     rc=tcgetattr(STDIN_FILENO, &tio);
  154.  
  155.     if(rc==-1)
  156.     {
  157.         perror("tcgetattr");
  158.         exit(EXIT_FAILURE);
  159.     }
  160.  
  161.     printf("Bylo OLCUC: %d\n", tio.c_oflag&OLCUC?1:0);
  162.     tio.c_oflag ^= OLCUC;
  163.     printf("Ustawiam OLCUC: %d\n", tio.c_oflag&OLCUC?1:0);
  164.  
  165.     rc = tcsetattr(STDIN_FILENO, TCSANOW, &tio);
  166. }
RAW Paste Data