Moin,
* Bernhard Walle
On Thu, 06 Jun 2002 at 19:37 (+0200), Thorsten Haude wrote:
* Bernd Brodesser
[02-06-06 10:27]: strncpy (newstring,oldstring,n); newstring [n-1] = '\0'; Du hast vergessen, Speicher zu allozieren. Was heißt "allozieren". Wahrscheinlich meinst Du das, was ich als allokieren (oder schlicht zuteilen) bezeichnen würde. Daß man sich darum selbst kümmern muß, ist eines der großen Nachteile von C. ('Allozieren' ist eindeutig, darum benutze ich nicht 'zuteilen'.)
Jetzt eine Funktion; wie sieht das in C aus: - - - Schnipp - - - sub weekDay { return (localtime)[6]; } - - - Schnapp - - -
Wahrscheinlich irgendwie so ähnlich:
- - - schnipp - - - #include
int weekDay (void) { time_t my_time; struct tm *my_tm;
time(&my_time); my_tm = localtime(&my_time);
return my_tm->tm_wday; } - - - schnapp - - - So wird das nicht gehen. Selbst, wenn my_tm statisch wäre, hättest Du ein Problem, wenn die Funktion mehrfach aufgerufen wird und sich der erste Caller darauf verläßt, daß der Wert gleich bleibt.
Wird das jetzt ein Quiz "PerlToC"? Sieht so aus.
Diese Aufgabe wird in Perl für Strings beliebiger Länge so gelöst: $a = $b; Schön. Und warum wird es in C wohl nicht so gemacht? Weil C älter ist und andere Ziele hat. Eben. Ich finde die Diskussion hier eigentlich ziemlich überflüssig. Gerade Perl und C sind doch zwei Sprachen, die sich mehr ergänzen als konkurrieren. Auf jeden Fall. Es geht nur um die Frage, ob C ähnlich gut wie Perl als Ersatz für Shellskripte eignet.
Thorsten -- Das Briefgeheimnis sowie das Post- und Fernmeldegeheimnis sind unverletzlich. - Grundgesetz, Artikel 10, Abs. 1