C-Newbie Frage

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ts_berlin
Beiträge: 37
Registriert: 24.02.2003 17:48:35
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Berlin
Kontaktdaten:

C-Newbie Frage

Beitrag von ts_berlin » 06.03.2006 08:38:41

Hallo Forum,

nachdem ich nun seit geraumer Zeit BASH- und Perl-Scripte fuer diverse Verwaltungsaufgaben geschrieben habe, moechte ich nun, teils fuer zeitkritische Aufgaben, teils um meinen Programmierhorizont zu erweitern, ein paar Dinge in C(++) versuchen.
Leider hoehren alle Buecher, Online-Dokumentationen, etc, meistens da auf, wo es anfaengt spannend zu werden, naemlich bei der praktischen Umsetzung. Ich habe, so glaube ich, Klassen, Ueberladung, etc pp, so halbwegs (zumindest theoretisch) verstanden, aber wie kann ich die Dinge loesen, die in BASH einfach per Aufruf des Kommandos (tar,echo,cp,....) erfolgen. Ich denke dies kann man direkt per Aufruf einer glib.* Funktion erreichen, aber wo bekomme ich die Information ueber den Aufruf, bzw. Namen der Funktion, und gibt es dafuer Beispiele?

Sorry fuer die Newbie-Frage, aber vielleicht habt Ihr ja auch einmal an diesem Punkt gestanden, und habt einen Hinweis oder Link zu dem Thema. Ich freue mich auch ueber einen Buchhinweis, ich bin, meineserachtens, sowieso der beste Kunde von o'Reilly, wenn ich meinen Buecherschrank so anschaue.

ts_berlin

PS: Ich bin kein studierter Informatiker, be gentle!

init 0
Beiträge: 673
Registriert: 21.10.2003 19:40:28

Beitrag von init 0 » 06.03.2006 09:16:12

Ich bin auch kein studierte Informatiker. Ich bin Autodidakt.Es gibt da ein ganz ganz tolles Werkzeug. Ich verrats dir es nennt sich Suchmaschine. Die Suchmaschine die behauptet die Beste zu sein nennt sich Google. Ich habe mich mit Ihr angefreundet und sie ist meistens auch recht willig. Nach kurzem Suchen mit den Begriffen "libc tutorial exec fork" Komme ich auf
http://yolinux.com/TUTORIALS/ForkExecProcesses.html
Da dir jetzt schon die meisten Anleitungen und Bücher zu einfach sind schlage ich dir vor in die Quellcodes bestimmter Programme zu schauen die ungefähr das machen was du auch machen willst. Sowas ist unglaublich inspirierend.
Ach ja, und nix schrotten.
Ich habe einen schlechten Stil, ich weiss, Danke, wurde mir bereits gesagt.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: C-Newbie Frage

Beitrag von gms » 06.03.2006 09:23:10

ts_berlin hat geschrieben: Ich habe, so glaube ich, Klassen, Ueberladung, etc pp, so halbwegs (zumindest theoretisch) verstanden, aber wie kann ich die Dinge loesen, die in BASH einfach per Aufruf des Kommandos (tar,echo,cp,....) erfolgen.
Also wie du "echo" implementierst, wirst du ja wahrscheinlich nach dem ersten "Hello Word" Programm wissen. Die Programme "tar" und "cp" sind eigenständige Programme und nicht Teil der Bash. Du kannst diese aber von C/C++ z.B. über die "system" Funktion sehr leicht aufrufen.
Im Normalfall macht man sich aber zuerst einmal auf die Suche nach geeigneten Libraries und verwendet dann diese, z.B "libtar" anstatt "tar"

Gruß
gms

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Re: C-Newbie Frage

Beitrag von Joghurt » 06.03.2006 13:19:13

ts_berlin hat geschrieben:aber wie kann ich die Dinge loesen, die in BASH einfach per Aufruf des Kommandos (tar,echo,cp,....) erfolgen. Ich denke dies kann man direkt per Aufruf einer glib.* Funktion erreichen
Nein, kannst du in der Regel nicht. Dafür ist ja bashskripting da, um Sachen zu vereinfachen. Es gibt natürlich bestimmt Libraries, die tar-Funktionalität bieten, aber die gehören nicht zum C++ Standard.

Wenn du C++ programmierst, hast du in der Regel völlig andere Anforderungen als wenn du ein Bashskript schreibst. Und genauso, wie du in Bash keinen Renderer schreiben würdest, würdest du in C++ kein bashskript nachprogrammieren.

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 06.03.2006 13:32:32

Da dir jetzt schon die meisten Anleitungen und Bücher zu einfach sind schlage ich dir vor in die Quellcodes bestimmter Programme zu schauen

Code: Alles auswählen

apt-get source coreutils  
bunzip2 coreutils-5.2.1.tar.bz2
tar xvf coreutils-5.2.1.tar 
nun gibt es tolle Programme aus dem Paket coreutils, zu Beginn vielleicht /bin/false (gibt immer 0 zurück)

hier false.c mal zum anschauen: http://nopaste.debianforum.de/2561

ts_berlin
Beiträge: 37
Registriert: 24.02.2003 17:48:35
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Berlin
Kontaktdaten:

Beitrag von ts_berlin » 06.03.2006 13:57:56

Hallo Forum,
danke erstmal an alle die sich der Frage angenommen haben.

Mir ist durchaus bewusst, dass C-Programmierung sehr komplex ist, und nicht nur Bash-Skripting mit anderen (Befehls-)Worten ist. Allerdings wollte ich das Forum nutzen (INIT 0:ich kenne google, danke!) um Eure Erfahrungen zu hoehren, ich denke dafuer ist es auch da.

NIL, danke fuer den Startpunkt, ich beschaeftige im Augenblick mit LinuxFromScratch, da kann ich sicher in das eine oder andere Package schauen, und (vielleicht) etwas verstehen.

ts_berlin

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 06.03.2006 14:04:17

Naja, vielleicht sind die UNIX-Quelltexte nicht gerade die besten Beispiele zum Erlernen von C. Es ist immer auch die Frage, was man programmieren möchte. So wird zum Beispiel im Linux-Kernel gerne GOTO benutzt, mit allen Vor- und Nachteilen.
Für jemanden der vielleicht sauber programmieren lernen möchte ist das jedoch wahrscheinlich der falsche Ansatz.

DeletedUserReAsG

Beitrag von DeletedUserReAsG » 06.03.2006 14:14:14

Es gab mal irgendwo ein Buch zum Thema C unter Linux zum freien Download. Leider weiß ich nicht mehr, wo es zu finden ist, aber vielleicht kann sich ja jemand erinnern.

Vielleicht ist auch "The Linux Programmers Guide" etwas brauchbares, den sollte man beim tldp irgendwo finden.

cu

ts_berlin
Beiträge: 37
Registriert: 24.02.2003 17:48:35
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Berlin
Kontaktdaten:

Beitrag von ts_berlin » 06.03.2006 14:29:34


Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 06.03.2006 14:45:44

Hallo,
mal etwas generelles. Du schreibst mal C, dann C(++), dann etwas von Klassen, Überladen,...
Was willst du eigentlich lernen, bzw. was hast du überhaupt gelernt? C oder C++. Ich bin immer wieder erstaunt wie das von manchen durcheinander geworfen wird.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Antworten