Compare commits

..

25 Commits

Author SHA1 Message Date
30b61da9a6 Zaktualizuj 'punktacja.md' 2019-01-20 14:15:05 +00:00
f0cea2dd1d Zaktualizuj 'microshell/Makefile' 2019-01-18 08:35:05 +00:00
e325426320 Zaktualizuj 'microshell/microshell.c' 2018-12-19 18:28:05 +00:00
52f7668822 Zaktualizuj 'microshell/microshell.c' 2018-12-19 18:01:55 +00:00
fd1d2a348b Zaktualizuj 'grupa.txt' 2018-12-16 21:17:07 +00:00
d0ecfd4b1a Zaktualizuj 'punktacja.md' 2018-12-16 11:06:59 +00:00
e4965d0ee8 Zaktualizuj 'quizy/q-11.txt' 2018-12-16 10:57:43 +00:00
7578d2cf02 Zaktualizuj 'quizy/q-10.txt' 2018-12-16 10:48:19 +00:00
627764ae02 Zaktualizuj 'quizy/q-09.txt' 2018-12-16 10:40:58 +00:00
59e08bf628 Zaktualizuj 'rok.txt' 2018-12-04 17:40:33 +00:00
525c159edc Dodaj 'rok.txt' 2018-12-04 17:16:44 +00:00
b6fa26ef90 Usuń 'rok.txt' 2018-12-04 17:16:30 +00:00
4bf5394b8b Dodaj 'rok.txt' 2018-12-02 19:09:27 +00:00
e7572d3b18 Zaktualizuj 'punktacja.md' 2018-12-02 13:56:30 +00:00
066ebc55e1 Zaktualizuj 'quizy/q-08.txt' 2018-12-02 13:41:57 +00:00
a7ea745333 Zaktualizuj 'quizy/q-07.txt' 2018-12-02 13:38:47 +00:00
89bd5a17f3 Zaktualizuj 'quizy/q-06.txt' 2018-12-02 13:25:09 +00:00
d538575586 Zaktualizuj 'lista-obecnosci.md' 2018-12-02 13:13:19 +00:00
6a1ce1ac94 Zaktualizuj 'punktacja.md' 2018-11-17 13:53:41 +00:00
e871048f4d Zaktualizuj 'lista-obecnosci.md' 2018-11-17 13:43:41 +00:00
7f2b200645 Zaktualizuj 'lista-obecnosci.md' 2018-11-17 13:43:22 +00:00
2320f24fc0 Zaktualizuj 'grupa.txt' 2018-11-17 13:42:04 +00:00
19ae34e974 Zaktualizuj 'quizy/q-05.txt' 2018-11-17 13:33:47 +00:00
bf53663343 Zaktualizuj 'quizy/q-04.txt' 2018-11-17 13:29:59 +00:00
a612a2f981 Zaktualizuj 'quizy/q-03.txt' 2018-11-17 13:28:47 +00:00
15 changed files with 208 additions and 11 deletions

View File

@ -0,0 +1,2 @@
1CC
Quizy 9, 10, 11 - 1CA

View File

@ -8,11 +8,11 @@ Indywidualna lista obecności prowadzona jest samodzielnie przez każdego studen
| ------- | -------- | | ------- | -------- |
| 1 | | | 1 | |
| 2 | | | 2 | |
| 3 | | | 3 | o |
| 4 | | | 4 | |
| 5 | | | 5 | |
| 6 | | | 6 | |
| 7 | | | 7 | o |
| 8 | | | 8 | |
| 9 | | | 9 | |
| 10 | | | 10 | |

View File

@ -0,0 +1,11 @@
default: all
microshell.o: microshell.c
gcc -c microshell.c -o microshell.o
all: microshell.o
gcc microshell.o -o microshell
clean:
-rm -f microshell.o
-rm -f microshell

View File

@ -0,0 +1,106 @@
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <pwd.h>
#include <string.h>
#include <wait.h>
#define space " \n"
#define max_c 500
#define BRIGHT 1
#define RED 31
#define GREEN 32
#define YELLOW 33
#define BLUE 34
#define PINK 35
#define CYAN 36
#define WHITE 37
int help() {
printf ("microshell v1.0. © 2018 Krystian Rzepa\n");
printf("Obslugiwane polecenia:\n\
help - pomoc\n\
exit - wyjscie\n\
cd - zmiana aktualnego katalogu\n\
pwd - wyswietla aktualny katalog\n\
obsluga programow z parametrami\n");
}
const char *getUserName()
{
uid_t uid = geteuid();
struct passwd *pw = getpwuid(uid);
return pw->pw_name;
}
int main()
{
char cwd[1000], hostName[100], *pwd[1000];
register struct passwd *pw;
register uid_t uid;
uid = geteuid ();
pw = getpwuid (uid);
char line[max_c], lend[max_c], * commands[max_c], ** command;
void domyslny_kolor()
{
printf("%c[%dm",0x1B,0);
}
while (1) {
gethostname(hostName, 99);
getcwd(cwd, 999);
printf("%c[%dm%s",0x1B, YELLOW, pw->pw_name);
domyslny_kolor();
printf("@");
printf("%c[%dm%s ",0x1B, YELLOW, hostName);
printf("%c[%dm%s",0x1B, CYAN, cwd);
printf("%c[%dm $ ",0x1B, GREEN);
domyslny_kolor();
fflush(stdout);
if (fgets(line, max_c, stdin )) {
command = commands;
*command++ = strtok(line,space);
while ((*command++ = strtok(NULL,space)));
if (strcmp(commands[0], "help")==0) help();
else if (strcmp(commands[0], "exit")==0) {
if (commands[1]==0) exit(0);
else exit(atoi(commands[1]));
}
else if (strcmp(commands[0], "cd")==0) {
if (commands[1]==0) printf("Wymagany argument\n");
int ret;
ret = chdir(commands[1]);
strcpy(lend, "pwd");
}
else if (strcmp(commands[0], "pwd")==0) printf ("%s\n", cwd);
else {
pid_t x;
x = fork();
if (x==0) {
if (commands[1] == 0) execlp(commands[0], commands[0], (char *)NULL);
else execlp(commands[0], commands[0], commands[1], (char *)NULL);
printf("Nie ma takiego polecenia. Wpisz help aby wyswietlic dostepne polecenia.\n");
}
else waitpid(x, NULL, 0);
}
}
}
return 0;
}

View File

@ -6,14 +6,15 @@ Ten plik uzupełniasz tylko na wyraźne polecenie **prowadzącego zajęcia**.
| ---: | :-------: | :-------: | :-------: | :-------: | | ---: | :-------: | :-------: | :-------: | :-------: |
| 1 | | | | | | 1 | | | | |
| 2 | | | | | | 2 | | | | |
| 3 | | | | | | 3 | 1 | 1 | 1 | 1 |
| 4 | | | | | | 4 | 1 | 1 | 1 | 1 |
| 6 | | | | | | 5 | 0 | 1 | 0 | 0 |
| 7 | | | | | | 6 | 0 | 0 | 1 | 1 |
| 8 | | | | | | 7 | 1 | 1 | 1 | 1 |
| 9 | | | | | | 8 | 1 | 1 | 1 | 1 |
| 10 | | | | | | 9 | 1 | 1 | 1 | 1 |
| 11 | | | | | | 10 | 1 | 1 | 1 | 1 |
| 11 | 1 | 1 | 1 | 1 |
| 12 | | | | | | 12 | | | | |
| 13 | | | | | | 13 | | | | |
| 14 | | | | | | 14 | | | | |
@ -22,4 +23,4 @@ Ten plik uzupełniasz tylko na wyraźne polecenie **prowadzącego zajęcia**.
| Temat | Punkty | | Temat | Punkty |
| ---------- | :-------: | | ---------- | :-------: |
| Microshell | | | Microshell | 6 |

View File

@ -0,0 +1,8 @@
Zadanie 1
cat abc.txt | tr 'abcde' '12345'
Zadanie 2
sed s/txt/TXT/g
Zadanie 3
kill -KILL 592
Zadanie 4
cat /etc/passwd

View File

@ -0,0 +1,9 @@
Zadanie 1
10.100.5.240/16
Zadanie 2
scp plik.txt snumer_indexu@lts.wmi.amu.edu.pl
Zadanie 3
root
Zadanie 4
systemctl restart apache2
sudo systemctl restart apache2

View File

@ -0,0 +1,8 @@
Zadanie 1
Zadanie 2
150.254.79.101 afe80::9a90:96ff:fecc:e0a9
Zadanie 3
Zadanie 4
96-97ms

View File

@ -0,0 +1,9 @@
Zadanie 1
signal(ready); 8
wait(ready); 12, 13
Zadanie 2
0, 3, 7, 10
Zadanie 3
3
Zadanie 4
Trzeba zdeklarowac zmienna int i przed petla for

View File

@ -0,0 +1,9 @@
Zadanie 1-2
wait(nowy); 21
signal(pusty); 22
wait(pusty); 15
signal(nowy); 16
Zadanie 3
Taki problem nigdy nie wystąpi, ponieważ zawsze jeden z nich będzie mógł kontynuować
Zadanie 4
2

View File

@ -0,0 +1,8 @@
Zadanie 1
zawsze 12
Zadanie 2
Nie
Zadanie 3-4
3 (values[3]), 7 (if (( index >= 0 || index < 3 )),
10 (==3), 16 (==3),
35 (proces_gen( 2 );)

View File

@ -0,0 +1,8 @@
Zadanie 1
i915 (1740800); bluetooth (41)
Zadanie 2
2 (libresolv.so.2)
Zadanie 3
3
Zadania 4
4

View File

@ -0,0 +1,8 @@
Zadanie 1
8
Zadanie 2
(1) i (4)
Zadanie 3
4
Zadania 4
nazwa pliku, który uruchamiamy

View File

@ -0,0 +1,8 @@
Zadanie 1
-----w-rw-
Zadanie 2
gdy chcemy odczytać więcej bajtów niż zostało do końca pliku
Zadanie 3
pokazuje zawartość bieżącego katalogu
Zadania 4
/proc/1234/

2
rok.txt Normal file
View File

@ -0,0 +1,2 @@
2
kryrze@st.amu.edu.pl