Jessica85
Anmeldungsdatum: 8. März 2009
Beiträge: Zähle...
|
Ich möchte jetzt unter Ubuntu mit System und Socketprogrammierung beschäftigen.
Ich beherrsche den Syntax von C.
Ich hatte schon alles geplant wie ich als nächstes voran gehen soll allerdings hatte ich zwei Problem und zwar ob ich jetzt mit C in die System und Socketprogrammierung einsteige oder weiter an C++ arbeiten und danach an die beiden Oben genannten Programmiergebiete einsteigen. Als ich noch am überlegen war wofür ich mich entscheiden soll kam noch ein Problem hinzu die Online Version zum Buch Linux-Unix Programmierung auf www.Pronix.de ist nicht mehr vorhanden.
http://www.pronix.de/pronix-14.html Error 404
Die angeforderte Seite /pronix-14.html wurde nicht auf dem Server gefunden.
Dieses Buch war Ideal für mein Programmierlernprozess. In der Online Version gab es folgende Themen: # 1. Einführung
# 2. E/A-Funktionen
# 3. Attribute von Dateien und Verzeichnissen
# 4. Zugriff auf Systeminformationen
# 5. Devices - Eine einfache Verbindung zur Hardware
# 6. Dämonen, Zombies und Prozesse
# 7. Signale
# 8. IPC (Interprozesskommunikation)
# 9. Threads
# 10. Netzwerkprogrammierung
# 11. MySQL und PostgreSQL
# 12. Terminal E/A und Benutzerschnittstellen für die Konsole
# 13. Xlib - X Window-Programmierung
# 14. GTK+
# 15. SDL
Leider habe ich als 16 Jähriger Schüler nicht die Finanzielle Mitteln das Buch zu kaufen. Meine Fragen sind: 1.Sollte ich noch meine C Kenntnisse noch auf C++ erweitern ? 2.Weiß jemand über die Lage des Tutorial damit meine ich ob der Tutorial auf eine andere Seite verschoben wurde, Taucht das Tutorial jemals wieder auf oder
arbeitet jemand schon dran wenn ja wann taucht es auf ? (Falls jemand etwas über das Tutorial weiß) 3.falls dass , das Tutorial nie wieder auftaucht würde ich mich über eine Alternative riesig freuen. 😊 mfg
Unbekannter Schüler und kein Jessica 😉
|
Jessica85
(Themenstarter)
Anmeldungsdatum: 8. März 2009
Beiträge: 48
|
Wie ich sehe habe ich mehrere Threads erstellt und ich bitte euch um entschuldigung es tut mir leid war nicht absicht. 😢
|
DerGreem
Anmeldungsdatum: 14. April 2009
Beiträge: 206
|
1.Sollte ich noch meine C Kenntnisse noch auf C++ erweitern ?
Das kommt ganz drauf an was du machen willst. Du kannst auch einfach C++ lernen, die ja objektorientiert ist, im Gegensatz zu C. Ich weiß auch nicht genau was du mit Socketprogrammierung meinst, so wie ich das verstehe, geht das mit jeder höheren Sprache.
|
Jessica85
(Themenstarter)
Anmeldungsdatum: 8. März 2009
Beiträge: 48
|
Das kommt ganz drauf an was du machen willst.
Habe ich doch gesagt die beiden oben genannten.
|
DerGreem
Anmeldungsdatum: 14. April 2009
Beiträge: 206
|
Habe ich doch gesagt die beiden oben genannten.
Ist ja gut.
1.Sollte ich noch meine C Kenntnisse noch auf C++ erweitern ?
C ist nicht C++. Daher erweiterst du die Kenntnisse nicht einfach. Du solltest beide als unterschiedliche Programmiersprachen betrachten. Solltest du reine Systemprogrammierung betreiben wollen, würde ich zu C raten, aber da werden dir andere wahrscheinlich Näheres berichten können. Meine Frage zielte darauf ab, was du mit Systemprogrammierung bzgl. Sockets meintest. Wo genau liegt denn das Ziel? Willst du Hardwareprogrammierung betreiben, oder wie? 2. und 3. Keine Ahnung.
|
Lunar
Anmeldungsdatum: 17. März 2006
Beiträge: 5792
|
Was C kann, können C++ und D auch, daher ist es nicht notwendig und imho auch nicht ratsam, C zu lernen, sofern man nicht bei bereits existierenden Programmen mitarbeiten möchte. Im Gegensatz zu C bieten C++ und D zumindest die Möglichkeit, auf abstrakterem Niveau zu programmieren, während C relativ schnell am Ende seiner Abstraktionsmöglichkeiten ankommt. Socketprogrammierung im Sinne von Netzwerkprogrammierung und IPC funktioniert mit jeder verbreiteten Sprache. Systemprogrammierung ist ein weites Feld, daher lässt sich da wenig zu sagen.
|
DerGreem
Anmeldungsdatum: 14. April 2009
Beiträge: 206
|
Was C kann, können C++ und D auch, daher ist es nicht notwendig und imho auch nicht ratsam, C zu lernen, sofern man nicht bei bereits existierenden Programmen mitarbeiten möchte.
Das war mir neu. Ich dachte immer das sich C besser für Hardwareprogrammierung eignen würde. Aber ich stecke da auch nicht so drin. Zusatz: D hört sich recht interessant an, über Wikipedia ist ein gutes Tutorial zu haben. PDF Buch über D
|
Jessica85
(Themenstarter)
Anmeldungsdatum: 8. März 2009
Beiträge: 48
|
Naja bis jetzt helft mir gar nicht.
jetzt werde ich C++ lernen. Und nochmal die Fragen:
.Weiß jemand über die Lage des Tutorial damit meine ich ob der Tutorial auf eine andere Seite verschoben wurde, Taucht das Tutorial jemals wieder auf oder arbeitet jemand schon dran wenn ja wann taucht es auf ? (Falls jemand etwas über das Tutorial weiß) 3.falls dass , das Tutorial nie wieder auftaucht würde ich mich über eine Alternative riesig freuen. 😊
|
DerGreem
Anmeldungsdatum: 14. April 2009
Beiträge: 206
|
Hier ein C-Tutorial. Hier ein C++-Tutorial.
Naja bis jetzt helft mir gar nicht.
Google hilft da immer.
|
Lunar
Anmeldungsdatum: 17. März 2006
Beiträge: 5792
|
Im Bezug auf C++ ist man imho mit einem Buch besser bedient, da die zahllosen Tutorials im Netz meist von geringem Umfang und mäßiger Qualität sind. Sie kommen über die absoluten OOP-Grundlagen und ein bisschen Zeiger-Wissen hinaus, und kratzen damit gerade mal ein der Oberfläche, C++ ist weitaus komplexer. Ein gutes, kostenloses Buch ist Thinking in C++, zu Kaufen gibt es außerdem den C++ Primer und Accelerated C++, die dem Hörensagen nach ebenfalls gut sein sein sollen.
|
diesch
Anmeldungsdatum: 18. Februar 2009
Beiträge: 5072
Wohnort: Brandenburg an der Havel
|
Lunar schrieb: Was C kann, können C++ und D auch, daher ist es nicht notwendig und imho auch nicht ratsam, C zu lernen, sofern man nicht bei bereits existierenden Programmen mitarbeiten möchte. Im Gegensatz zu C bieten C++ und D zumindest die Möglichkeit, auf abstrakterem Niveau zu programmieren, während C relativ schnell am Ende seiner Abstraktionsmöglichkeiten ankommt.
In C kann man genau so weit abstrahieren wie in C++, muss/kann da aber mehr selbst machen. GTK zeigt z.B., wie man auch OOP in C machen kann. Manchmal will man auch gar nicht auf einer hohen Abstraktionsebene arbeiten. Auch C++ und D bieten von Haus aus weniger Abstraktion als z.B. Python oder gar Haskell Welche Programmiersprache die sinnvollste ist, hängt immer von der konkreten Aufgabenstellung ab. In den allermeisten Fällen will man ja nicht komplett bei Null anfangen, sondern vorhandene Bibliotheken, Codestücke, Literatur usw. benutzen. Je nachdem, was man machen will, kann es schon sinnvoll sein, C zu lernen. Socketprogrammierung im Sinne von Netzwerkprogrammierung und IPC funktioniert mit jeder verbreiteten Sprache.
Das ist eher eine Frage der vorhandenen Bibliotheken, als der Sprache an sich.
|
Jessica85
(Themenstarter)
Anmeldungsdatum: 8. März 2009
Beiträge: 48
|
|
Lunar
Anmeldungsdatum: 17. März 2006
Beiträge: 5792
|
Ich kenne Gtk durchaus, und auch andere objektorientierte Ansätze in C, die z.B. der Linux-Kernel in diversen Subsystemen umsetzt. Allerdings sind die Möglichkeiten von C gegenüber Sprachen wie D oder C++ beschränkt. C bietet den Präprozessor als einziges Werkzeug zur generischen Programmierung, der aber seiner Natur nach nicht typsicher ist. Ansätze zur objektorientierten Programmierung nutzen also exzessiv den Präprozessor, was zu syntaktischen Verrenkungen und dem Verlust der Typsicherheit führt, oder leben in einem begrenzten Raum, in dem fortgeschrittenere Konzepte wie generische Programmierung oder Vererbung nur im begrenzten Maß möglich sind. Gtk geht den ersten, der Kernel den zweiten Weg, beiden ist gemein, dass sie hinter den Möglichkeiten von C++ zurückbleiben. Es ist in C de facto nicht möglich, einen generischen, aber dennoch typsicheren Container zu implementieren. C++ bietet über Templates ein sehr hohes Abstraktionsniveau. Zwar hat C++ ein grundlegend anderes Objektmodell als Python, die Möglichkeiten sind weitestgehend die gleichen, allein erfordert C++ mehr Schreibarbeit.
Je nachdem, was man machen will, kann es schon sinnvoll sein, C zu lernen.
Ich kann mich nur wiederholen, was C kann, können C++ und D auch.
Socketprogrammierung im Sinne von Netzwerkprogrammierung und IPC funktioniert mit jeder verbreiteten Sprache.
Das ist eher eine Frage der vorhandenen Bibliotheken, als der Sprache an sich.
Erlaube mir, zu präzisieren: Es gibt für jede verbreitete Sprache Bibliotheken für Netzwerkprogrammierung und IPC. 🙄
|
muhammad
Anmeldungsdatum: 14. Juni 2007
Beiträge: 187
|
Hallo lieber Threadersteller (ein Schüler und kein Jessica 😉 ), das ist doch schon mal fein, wenn du die Syntax von C beherrscht, dann würde ich dir raten zunächst mal bei C zu bleiben und deine Kenntnisse und Fähigkeiten hier auszubauen. Da bist du bei Ubuntu-Linux gerade richtig, ist es doch schließlich gewissermaßen ein C-Produkt. Es gibt ein sehr gutes Buch, welches sich mit der praxisorientierten Programmierung mit C unter Linunx beschäftigt. Es ist überhaupt kein dicker Wälzer und der Autor hat den Fokus stark auf Beispielprogramme gerichtet, was in meinen Augen ein viel höheren Lerneffekt hat als langatmige Theorie. Was dich besonders erfreuen dürfte: ein ganzes Kapitel ist der Netzwerkprogrammierung gewidment. Nun ja es kostest ganze 19,90 €, aber vielleicht kannst du ja deine Eltern von einer sinnvollen Investition überzeugen oder du sparst einfach geduldig ☺
C und Linux
|