In C++ enden alle Strings mit einer Whitespace.
Whitespace werden eingefügt bei:
– Enter
– Tabluator
– Beim Abstand im Text
In C++ enden alle Strings mit einer Whitespace.
Whitespace werden eingefügt bei:
– Enter
– Tabluator
– Beim Abstand im Text
token
Aufteilen des Streams in Pakete.
Die Paketunterteilung erfolgt über intelligente Funktionen.
Die Token an sich haben noch keine Bedeutung, es sind uninterpretierte Pakete.
parsen
Nennt man den Vorgang, der den Paketen (Token) eine Bedeutung zuteilt.
Es ist die Interpretation der Pakete.
Mit den Pipe-Operatoren < und > können streams übergeben werden.
Dies kann als Parameter für ein anderes Programm oder in eine Datei sein.
root/bin Programme für OS, Konsole Bsp. bash, cat, rm
root/home/ Dateien von Users
root/opt Programme selbst installiert Bsp: Nios, Questsim, altera
root/etc/ Konfiguarationsdateien
root/sbin Programme für Kommunikation Bsp: dhcpclient, wpa_cli
root/sys Systemprogramme
root/usr Programme über install installiert Bsp: ADB, cpp, blabla
Programme werden von ihrem Ordner aus gestartet.
Will man Programme von überall her ausführen können,
muss der Pfad der Pfadvariable übergeben werden.
Pfad der Pfadvariable zufügen
PATH=$PATH:/home/katrin/bin
– Der Pfad wird immer vom root aus angegeben
– Pfade werden voneinander durch : getrennt
– Die alte PATH-Variable ($PATH) muss genannt werden.
Der neue Pfad wird nach Doppelpunkt angehängt
Pfad in .bashrc setzen
#include programm-paths export PATH=$PATH:/opt/altera/13.0sp1/quartus/bin
.bashrc liegt im home als versteckte Datei
Variable (in Windows) als Systemvariable setzen
System und Sicherheit/ System /Erweiterte Systemeinstellungen
In diesem Popup hat es ein Button: Umgebungsvariablen
Anklicken und der Variable einen Namen geben: LM_LICENSE:blabla_5
Der Variable einen Wert geben: blaba@blume.aus.ch: 563
Ablegeort
home/katrin/bin
Ausführen (bei Ablageort)
./<script>.sh
Im Verzeichnis selbst wird mit ./ das Script ausgeführt.
Script der PATH-Variable zuweisen
PATH=$PATH:/home/katrin/bin
Mit gesetzer Pfadvariable kann das Script von überall her aufgerufen werden.
Ausführen Script überall
<script>.sh
Inhalt
#!/bin/bash # add programm to global path PATH=$PATH:/opt/ACA_166 # go to directory cd /opt/ACA_166/ # open programm java -jar ./QDAca.jar
Hier wird nicht der Script-Pfad, sondern das auszuführende Programm dem Pfad zugeteilt.
Script als ausführbar definieren
chmod +x name.sh
Parameter per Konsole mitgeben
#!/bin/bash
# Ausgabe in Konsole
echo $1 "anzahl_messungen"
echo $2 "anzahl_wiederholungen"
for o in `seq 1 $1`
do
# packetlength ist eine lokale Variable
for packetlength in 100 400 1400 1500 \
do
# Ausgabe Konsole aktuelle Paketlänge
echo $l
for i in `seq 1 $2`
do
iperf3 -c 10.4.30.50 -l $ packetlength
done
done
done
– echo gibt string an Konsole aus
– $.. sind Variablen
– echo $.. fordert eine Eingabe per Konsole mit whitespace (Enter oder Abstand)
script.sh 5 2
Wenn man die Parmeter vergisst, fragt das Programm beim Start danach
// ]]>
– Alias ersetzen Befehle durch ein Keywort
– Der Aufruf des Keyworts startet den Befehlt- Aliase müssen im home/.bashrc eingetragen werden
– Aliase können nicht nur die Argumente enthalten (ohne Programm)
Syntax
// keyword = endocsope, Befehl = ssh alias endoscope = "ssh root@192.168.17" // Aufruf des Befehlts endoscope
Alias setzen
gedit home/katrin/.bashrc
# Aliase alias endoscope='ssh root@192.168.17'
source ~/.bashrc
Eine Pipe ist ein Datenstrom zwischen zwei Prozessen.
Bzw. es ist der Ausgang der Daten des ersten Programmes, der Abgefangen wird.
programm1 >> daten >> programm2
programm1 | ausgabe.txt // Die daten werden in ausgabe.txt geschrieben
Das Ergebnis eines Programms wird als Eingabe eines anderen Programms verwendet
| <optionen
Programm 1 übergibt Datenstrom direkt Programm 2
in = von aussen IN eine Datei (ablegen)
out = von Datei nach aussen geben
#include <iostream> #include <string>
Über die Konsole kann wortweise über cin eingelesen werden.
std::cin >> wort1; // ablegen in variable
Will man über die Konsole mehrere Wörter eingeben, so braucht man mehrere Variablen, zum Speichern. Der Datentyp von Eingabe und Variable müssen stimmen.
std::string name; int alter; std::cout << "Eingabe Name und Alter \n"; std::cin >> name >> alter
Stream ablegen
string datei_name = {"data.txt"};
ifstream stream_a {datei_name};
cout << "Name des Files angeben";
string datei_1;
cin >> datei_1
ifstream stream1 {datei_1}
Einlesen bis
std::string current = "";
std::string end = ".";
// 1.Variante
while ( std::cin >> current ) {
if (current == end){
// do action;
}
}
Im While wird wortweise eingelesen und das Wort in den String current abgelegt.
Sobald ein spezifisches Wort erscheint, wird eine bestimmte Anweisung erteilt.
Fehlerbehandlung
if (!cin ) {
error(" Einlesen funtkonierte nicht \n");
}
else {
do something;
}
Linuxpfade
haus/zimmer/fenster.txt
Windowspfade
C:\\haus\zimmer\fenster.txt
Wie kann das ein Executable händeln?
Python: os.path.join(„haus“,“zimmer“)
Die Wörter werden intelligent zusammengefügt. Je nach OS mit anderem Backslash.
Altera-FPGAs können mit Quartus programmiert und kompiliert werden.
Es werden Projekte gebildet, mit der Dateiendung.qpf
Hauptschritte
– Quartus über shell öffnen
quartus13.sh
– Projekt in Quartus öffnen: Menü File/Open Projet
– Projekt am Ende kompilieren: Menü Processing/ Start Compilation