Was wird benötigt, um in C zu codieren

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Was wird benötigt, um in C zu codieren
Servus beisammen,

Dieses Semester beginnt für mich das Modul Systemprogrammierung 1.

Nun ist es so, dass wir in ANSI C99 und SUSv4 codieren müssen. Problem ist nur, wenn ich von zuhause aus die Aufgaben bearbeiten oder genauer coden will, dann geht das grundsätzlich schonmal nicht unter Windows. :scared:
Jetzt habe ich die Idee über eine VM auf meinem Rechner Linux laufen zu lassen. Eine richtige Installation neben Windows kommt für mich aktuell nicht in Frage.

Meine Frage ist nun, welches Linux und welche zusätzlichen Programme (Editoren [vim??] , Compiler usw.) sich dafür empfehlen und ob grundsätzlich der Betrieb in einer VM auch die SSH Verbindung zum CiP-Pool zulässt, um meine Programme zu testen.

Vielen Dank für eure Hilfe!
LG Quappo


du brauchst:
notepad++
winscp (faui06c.cs.fau)
cipnutzername & pw

connecte mit winscp auf uni rechner, erstelle dort dateien, öffne sie von dort (rechtsklick) mit notepadd++, mach dir in mtputty einen Tab auf in dem du die konsolenbefehle ausführst


Außerdem aus der Facebookgruppe des '14 Jahrgangs

1 „Gefällt mir“

Wenn du eine ähnliche Umgebung wie im CIP haben willst, dann kannst du dir Debian in deiner VM (z.B. VirtualBox) installieren. Wenn du deiner VM auch Netzwerk im Bridge- oder NAT-Modus konfigurierst, sollte auch die SSH-Verbindung in den CIP kein Problem sein. Als Compiler willst du für SP den GCC. Unter Debian kriegst du den z.B. auch mit [m]apt-get install build-essential[/m], da kriegst du gleich [m]make[/m] und andere wichtige Dinge dazu. Für Vim willst du das paket [m]vim[/m], für gVim [m]vim-gtk[/m].


Wenn du es ganz einfach haben willst, kannst du auch von Zuhause aus auf einem der CIP-Rechner arbeiten.

Wenn dir die Konsole reicht, dann verbinde dich einfach per PuTTY auf einen CIP-Rechner und arbeite dann im Terminal. Um Probleme mit Verbindungsabbrüchen zu vermeiden, kannst du z.B. [m]tmux[/m] oder GNU [m]screen[/m] verwenden. (Ich bevorzuge tmux mit screen-Tastenkombinationen; einmal [m]cp -iv /usr/share/doc/tmux/examples/screen-keys.conf ~/.tmux.conf[/m] ausführen.) Da kannst du dann mit [m]CTRL-A c[/m] weitere Fenster anlegen und mit [m]CTRL-A SPACE[/m] zwischen diesen wechseln. Falls du die Verbindung in den CIP verlierst, musst du nur die SSH-Verbindung aufbauen und dann [m]tmux a[/m] (a wie attach) bzw. [m]screen -r[/m] (r wie reattach) dort weiter machen, wo du zuletzt warst.

Programme mit grafischer Oberfläche lassen sich auch von Zuhause aus nutzen, z.B. mit [m]xpra[/m].

1 „Gefällt mir“

Ich habe mich für WinSCP und PuTTY Variante entschieden. Funktioniert super! In der Konsole habe ich zum einen die Möglichkeit mit Vim oder Nano zu arbeiten, jedoch könnte ich auch mit WinSCP die Datei runterladen und nach der Notepad++ Bearbeitung wieder hochladen und testen (oder direkt mit N++ bearbeiten) .

@ Yannik:
Vielen Dank für deine Hilfe, habe soeben mit WinSCP eine Sitzung erfolgreich aufbauen können.
Kleine Anmerkung: es muss faui06c.cs.fau.de heißen!

Du meinst in WinSCP den Button „In PuTTY öffnen“ (Shortcut Ctrl + P) ?

@johnLate:
Vielen Dank für deine Erklärung für meine ursprünglich angedachte Lösung. Ich denke ich werde jetzt erstmal die oben beschriebene Variante nutzen! :slight_smile:

Deine Lösung für die Verbindungsabbrüche: ich habe den cp code einmal ausgeführt und werde dann im Falle eines Verbindungsabbruches mit tmux a versuchen die Sitzung wieder aufzunehmen. Ich hoffe das klappt, falls nicht, werde ich mich wieder melden :wink:


afaik, kannst du auch in WINSCP selber commands eingeben, dass ist allerdings sehr unkonfortabel, du willst eigentlich noch ein putty fenster offen haben in dem du make/man/gcc was auch immer eingibts (dh du machst putty UND winscp seperat auf und connectest seperat)

nochmal weil ich nicht genau weiss wie du es jetzt gemacht hast: du kannst aus winscp heraus die Dateien in notepad++ oeffnen, die liegen dan in tmp/XYZ, wenn du sie in notepad dann speicherst werden sie automatisch auf den server zurueckgeladen (verzoegerung idr nur 1-2s)


Warum kommt den eine Linux Installation nicht in Frage? Ist eigentlich recht easy zu installieren, und Windows läuft trotzdem parallel. Oder mach dir nen Boot stick mit linux, bootest halt von USB oder so, aber mit diesen ganzen Programmen hantieren. Weiß nicht ob das so effektiv ist im vergleich, einfach nen linux draf zu haben das man bei bedarf bootet?

zu Linux Variante. Hab selber die Erfahrung gemacht das alles was auf ubunutu-Kernel aufbaut, am besten funktioniert, wenns um hardware kompatibiltät ohne großen Ärger geht(nutze auf Laptop Linux Mint/Win 8.1, und aufm Desktp grad Xubuntu/Win 8.1), sind aber nur eigene Erfahrungen, andere mögen da vielleicht anderes berichten.


Zur Distribution:
Um auszutesten, welche Linux-Distribution Dir denn am besten liegt, kannst Du einfach einmal ein paar unter Windows in VirtualBox laufen lassen. Lies Dir zu den verschiedenen Distros vielleicht einfach einmal folgenden Artikel durch, denn auch wenn der schon etwas älter ist, treffen die Grundaussagen oft noch zu: Umstieg auf Linux: Distributionen im Vergleich - PC-WELT . Für den Einstieg kann Ubuntu oder OpenSuse nett sein. Bei Ubuntu empfehle ich Dir die aktuelle LTS-Version (14.04.2). Version 14.10 hab ich vor ein paar Wochen in VB ausgetestet und die hatte da zerschossene Abhängigkeiten in den Paketen. Wie es um die neuste Version 15.04. steht, weiß ich nicht.

Zum Editor:
Welchen Editor Du nimmst, ist egal. Such Dir einen, der Dir gefällt und mit dem Du zurecht kommst. Ich persönlich bevorzuge zum Erlernen einer Programmiersprache einen, der mir zwar ein gutes Syntaxhighlighting macht, aber keine Autovervollständigung (z.B. gedit). Vim und Emacs sind zwar sehr mächtig, benötigen aber aus meiner Sicht extrem viel Arbeitsaufwand, bis man damit effektiv arbeiten kann.

In der Distribution kannst Du Dir dann die zusätzlichen Pakete(z.B. Kompiler [gcc]) dann installieren, entweder über’s Terminal mit z.B. apt-get oder einer GUI (ich persönlich nehme ganz gerne Synaptic). Wie bereits weiter oben erwähnt wurde, gibt es ein „Sammelpaket“ build-essential (heißt unter vielen Distros so), welches alles, was Du brauchst, enthält.


Wenn du später mal nen Browser auf nem CIP-PC brauchst, dann kann ich dir [m]lynx[/m] empfehlen.

Ach, wenn man in Vim die Mausunterstützung aktiviert ist es gar nicht mehr so kompliziert. Den [m]vimtutor[/m] gibt es ja auch auf Deutsch, wenn man sich noch schwer tut. [troll]emacs ist doof[/troll]

Ich persönlich find folgende Einstellungen in der [m].vimrc [/m]essentiell:

Letztere Zeile sorgt dafür, dass eine Variable im ganzen Fenster hervorgehoben wird, wenn man sie mit dem Cursor markiert hat. Ist Geschmackssache, ich mags.

Kleiner Tipp: wenn das Blau in PuTTY zu dunkel ist: stells bei PuTTY ein :wink:

1 „Gefällt mir“

Fränkische Überkompensation? :slight_smile:
Du meinst vermutlich [m]autoindent[/m].


Allmächd :blush: