Óra Outline
- Adminsztráció, A tárgyról röviden, jelenlét
5p - WSL telepítése és tesztkód futtatása.
- C és POSIX/UNIX-ról
5p - Interaktív: Mit tudunk a C-ről? Manpages, gcc
5p -
arg.carguments - Pointerek recap + Bináris vagy, és
10p
1. Fordító telepítése
Unix-Szerű környezet (Linux, MacOS, WSL) kell
a tárgy feladatainak a megoldásához.
A gyakorlatokon C-ben fogunk programozni.
Ehhez szűkséges a gcc fordító csomag felrakása.
Linux & Mac
A gcc / clang C nyelv fordítónak el kéne lenne telepítve, terminálból ellenőrizhetitek ezt.: gcc --version
Windows
Ajánlott módszer:
WSL (Windows Subsystem for Linux) telepítése.
Ez a Microsoft által kiadott alrendszer lehetővé teszi a
tárgy keretében lévő összes Unix/Linux specifikus feladat megoldását.
Hivatalos telepítési útmutató:
https://learn.microsoft.com/en-us/windows/wsl/install
Telepítés után a windows parancssorból a wsl parancs
segítségével be tudtok lépni a linuxos környezetbe.
És a cd /mnt/c-vel pedig a C meghajtótokhoz is hozzáférhettek.
A file-okat windows alól ugyanúgy megnyithatjátok és szerkeszthetitek, csak a fordításhoz és futtatáshoz kell majd a wsl
Replit:
A kódok eléggé egyszerűek ahhoz, hogy online felületen is lehessen szerkeszteni.
Ha több gép között járkálsz, esetleg a géped nem támogatja a WSL-t, akkor ezzel jársz a legjobban.
Hátránya, hogy eléggé lassú.
https://replit.com/
Opsys szerver:
A tárgynak van egy dedikált szervere is opsys.inf.elte.hu, ahova a következő parannccsal tudtok be ssh-zni:
ssh username@opsys.inf.elte.hu
Ahol a username a ELTE Caesar usernevetek. Ezt az opciót kifejezetten nem ajánlom, mert ZH alatt mindig problémák vannak a a szerverrel. Csak a teljesség kedvéért említem.
Megjegyzés:
Nem elég simán windows-os C compilert használni (pl mingw, msvc++), specifikusan Unix/Linux környezet kell.
2. IDE választása
Természetesen olyan IDE-t használtok, amit szeretnétek. Ez már csak személyes ajánlás.
- VScode - Könnyű és gyors IDE.
- CLion - Ha ismered az IntelliJ-t, akkor ideális választás.
- Notepad++ (windows) vagy nano (linux) Sokkal teljeskörűbb támogatást ad, mint a Vscode. ELTE-s diákként jár licence hozzá.
Megjegyzés: Code::Blocks-ot kifejezetten nem ajánlom. A beadandó bemutatásakor terminálból kell fordítani majd a kódot, és ez problémát okozhat, ha Code::Blocks-ban teszteled csak a kódot.
3. Ellenőrzés
A WSL-t telepítés után simán a wsl paranccsal tudjátok elindítani egy parancssorból.
A file-okat már a windows-on belüli szövegszerkesztőn keresztül tudjátok megnyitni, de a WSL-el ből tudjátok futtatni.
cd /mnt/cNézzétek meg, hogy tudtok-e ténylegesen kódot fordítani, például hozzatok létre egy test.c file-t ezzel a tartalommal:
#include <stdio.h>
#include <sys/wait.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int main() {
printf("Hello World \n");
return 0;
}És fordítsátok le (és futtassátok) az alábbi paranccsal:
gcc -Wall -Werror=vla -pthread -std=c11 -pedantic ./test.c -lrt && ./a.out OS/X-en pedig:
clang -Wall -Werror=vla -std=c11 -pedantic -o a.out ./test.c && ./a.outHa WSL-ben nem sikerül a gcc-t használni, futtassátok ezt WSL-en belül:
sudo apt upgrade
sudo apt update
sudo apt install gcc manpages-dev manpages-posix-devHa mindenféle hiba nélkül egy sima hello world-öt láttok, akkor kész vagytok, a gyakorlat anyagát tudjátok majd saját gépen is követni.
Ha a kód nem fordul, írjatok teams-en és próbálok segíteni.
Megjegyzés: MacOS-en
gcchelyettclang-ot érdemes használni.
4. Opcionális telepítendő dolgok
fopen és társai manpage
sudo apt install manpages-dev
sudo apt install manpages-posix-dev