Für Slides und Code Beispiele, siehe Lektion 13
Achtung: Arbeiten Sie nicht direkt auf diesem Repository.
Erstellen Sie eine persönliche Kopie, mit diesem GitHub Classroom Link.
- Lesen Sie das folgenden TLPI Beispiel Programm:
calendar_time.c
- Vergleichen Sie den Output der Kommandos:
$ ./date $ ./calendar_time
- Schreiben Sie ein eigenes Programm, welches den Überlauf von Sekunden bei mktime() zeigt.
- Lesen Sie das folgenden TLPI Beispiel Programm:
strtime.c
- Vergleichen Sie den Output der Kommandos:
$ ./strtime "9:39:46pm 1 Feb 2011" "%I:%M:%S%p %d %b %Y" $ ./strtime "9:39:46pm 1 Feb 2011" "%I:%M:%S%p %d %b %Y" "%F %T"
- Geben Sie das Datum im ISO 8601 Format aus.
- Schreiben Sie ein Programm my_locale.c, welches die Zahl 10'000.5 in zwei verschiedenen Locales ausgibt.
- Prüfen Sie, ob die Locale nach Programmende bleibt.
- Falls ja, erweitern Sie ihr Programm, um am Ende die vor dem Aufruf gesetzte Locale wieder herzustellen.
- Schreiben Sie ein eigenes time Programm, my_time.c
- Das zu messende Programm soll aus argv gelesen und mit fork() und execve() gestartet werden.
- Der Parent Prozess wartet mit wait(), und bestimmt die Laufzeit, real und CPU Zeit, des Child Prozesses.
- Die Ausgabe soll derjenigen von time entsprechen.
- Lesen Sie das folgenden TLPI Beispiel Programm:
real_timer.c
- Testen Sie den Timer, z.B. mit den Kommandos:
$ ./real_timer 1 800000 1 0 # 1.8s, 1s Periode $ ./real_timer 3 0 # einmaliger Timer, nach 3s
- Ändern Sie das Programm, dass der Timer CPU Zeit statt reale Zeit verwendet, und testen Sie den Code.
- Lokale Änderungen committen und pushen.
- GitHub Issue erstellen mit "Bitte um Review, @tamberg".
- Offene Fragen ausformulieren, was geht nicht, was haben Sie versucht.
- GitHub mailt mir (@tamberg) automatisch, ich versuche in weniger als 24h zu antworten :)
Auf Ihrem Computer
- Zu Beginn jeder Lektion wird ein Hands-on Repository Link freigeschaltet
- Nachdem Sie das "Assessment" annehmen, bekommen Sie per Email ein Repository
- Die REPO_URL enthält Ihren GitHub Account USER_NAME und Ihre Klasse 3ia oder 3ib, z.B.
https://github.com/fhnw-syspr-3ia/fhnw-syspr-work-13-tamberg
Auf dem Raspberry Pi
- Repository klonen
$ cd ~ $ git clone REPO_URL
- Neue Datei kreieren
$ git add FILE
- Änderungen committen
$ git commit FILE -m "Fixed all bugs"
- Änderungen hochladen
$ git push
Auf dem Raspberry Pi
- Neue oder bestehende Datei öffnen mit $ nano FILE
- Editieren (Achtung, nano hat kein Undo)
- Speichern mit
CRTL-X
Y
RETURN
Auf Ihrem Computer
- Terminal öffnen (Mac) oder
WINDOWS
R
cmdRETURN
(Windows) - SSH Session starten mit
$ ssh [email protected]