Suchergebnisse

  1. T

    Kurze Verständnisfrage (Adresse int array in C)

    Nein, eine Adresse ist eine Adresse und kein Integer, egal ob signed oder unsigned. Das ist alles undefiniertes Verhalten: "%lu" erwartet einen unsigned long, aber a hat bei Verwendung (wie Yamagi erklärt hat) den Typ int* und &a den Typ int(*)[3], also beides nicht unsigned long. "%p" hingegen...
  2. T

    Test, ob ein bestimmtes Jahr ein Schaltjahr ist oder nicht

    $ YEAR=2019 $ echo $((YEAR % 4 != 0 || (YEAR % 100 == 0 && YEAR % 400 != 0))) 1
  3. T

    Preprocessor C

    Welche passende Syntax? Du hast doch schon alles. #if defined(_WIN32) # include <windows.h> # include <malloc.h> # include <conio.h> # define CLEAR system("cls") # define BUF 256 void err(int eval, char const* fmt, ...) { // Implementierung der Funktion } #elif Der da wäre?
  4. T

    Preprocessor C

    Irgendie verstehe ich dein Problem nicht so ganz. Du hast eine eigene err() gestrickt und die brauchst du nur in der einen .c-Datei. Was hindert dich daran, die in den Abschnitt #if defined (_WIN64) || (_WIN32) zu packen? Nebenbei: Es ist hübscher, wenn _WIN32 ebenfalls per defined geprüft...
  5. T

    undefined behavior?

    Es ist zwar unspecified behavior, in welcher Reihenfolge Funktionsargumente ausgewertet werden. (C11 §6.5.2.2) Aber hier liegt auch undefined behavior vor: Die beiden (Teil-)Ausdrücke "i" und "i += 2" sind unsequenced (C11 §5.1.2.3p3) zueinander, was aus obigem unspecified behavior folgt. "i +=...
  6. T

    Kleines unlogisches Problem mit C (OpenBSD + clang)

    static int const v = 0; int main(void) { *(int*)&v = 1; /* FALSCH: Verhalten ist undefiniert! */ return v; } Nur ein kleines Gegenbeispiel, dass gcc es "richtig" machen würde: Hier liefert gcc 7.3.0 (wahrscheinlich auch andere Versionen) 0 als Rückgabewert von main(). Es wäre auch...
  7. T

    Kleines unlogisches Problem mit C (OpenBSD + clang)

    Das hat nichts speziell mit clang zu tun. Dein Programm hat laut der C-Norm ab der ersten Ausführung von ptr[i] = '\0'; keine Bedeutung mehr -- undefined behavior, wie du korrekt festgestellt hast. Es ist somit falsch, irgendein bestimmtes Verhalten zu erwarten.
  8. T

    cat-like tool with fread() and write() in C

    Das klingt viel schlimmer als es alles ist. Effektiv kann man sich int arr[a * b + c]; ... sizeof(arr) ... so vorstellen: size_t const N = a * b + c; int arr[N]; ... (sizeof(*arr) * N) ... /* Elementgröße * Anzahl */ Das muss auch so funktionieren, denn z.B. ein Ändern von 'a' darf keinen...
  9. T

    Verstaendnissfrage zu db(3).

    Die Beschreibung in db(3) ist tatsächlich sehr dürftig. Ich vermute aber stark, dass nach einem db->del das entsprechende DBT nicht mehr gültig ist. Ich wäre mir nicht einmal sicher, ob nach zwei db->get hintereinander das DBT vom ersten Aufruf noch gültig ist -- es könnte ja sein, dass immer...
  10. T

    mit mkisofs mehrere Ordner zu einem ISO Image hinzufügen

    'x' statt 't', wie immer bei tar. 'tar', nicht 'rar'. tar gehört zum Basissystem.
  11. T

    mit mkisofs mehrere Ordner zu einem ISO Image hinzufügen

    (BSD-)tar kann das auch: tar tf image.iso
  12. T

    GCC 4.9 mit GDC kompilieren

    iconv() erwartet als zweiten Parameter einen 'char**', aber das Argument '&inbuf' beim Aufruf hat den Typ 'char const**'. Das ist ein historisches Problem, das autobreak versucht zu lösen, aber wie so häufig es nur schlimmer macht. Eigentlich(TM) hätte es erkennen sollen, dass dein iconv()...
  13. T

    [C] Hat x=x einen Seiteneffekt?

    Du kannst gerne nicht einverstanden sein. Nur gibt mit die C-Norm recht. Ich zitiere einen Satz aus der Beschreibung des Zuweisungsoperators: (Hervorhebung von mir) Aber schon die Definition von "side effect" bestätigt das schon: (Hervorhebung von mir)
  14. T

    [C] Hat x=x einen Seiteneffekt?

    Zunächst einmal ist das deutsche Wort für "side effect" "Nebenwirkung". Damit ist auch klarer, worum es hier geht: Manche Operatoren haben nicht nur ein Ergebnis, sondern haben auch noch eine Nebenwirkung. Das Ergebnis des =-Operators ist der neue Wert der linken Seite (so wie das Ergebnis von +...
  15. T

    Größe einer Information

    Mein Beispiel unterscheidet sich nicht fundamental vom Temperaturbeispiel. Ich habe nur Grundmenge und Verteilung präzise angegeben und rundere Zahlen gewählt (so dass keine krummen Bits rauskommen). Die Aussage "es hat 29 Grad" enthält mehr Information als "es hat mindestens 25 Grad", da...
  16. T

    Größe einer Information

    Einfaches Beispiel: Zahlen raten. Ich denke mir zufällig gleichverteilt eine ganze Zahl von 0 bis 15 (einschließlich) aus, du musst sie erraten. Jetzt habe ich hier zwei mögliche Tipps: a) Die Zahl ist mindestens 8. b) Die Zahl ist 12. Welche der beiden enthält mehr Information? Man kann den...
  17. T

    hw.syscons.bell=0 bei vt

    kbdcontrol -b off sollte es tun.
  18. T

    Ersetzen von Zeichen abhängig vom Vorkommen

    Hierfür ist awk prädestiniert. Insbesondere kann man diesem Trennzeichen für Spalten vorgeben vorgeben. Dies geschieht ganz am Anfang, bevor etwas eingelesen wird (BEGIN). Wir wählen hier | sowohl für die Eingabe (FS) als auch für die spätere Ausgabe (OFS). Zudem ersetzen (gsub) wir in der...
  19. T

    Frage: Was bringt bei Ports der "fetch(3)"-Support?

    Oft? Soweit ich das sehe, hat genau net/openldap24-server diesen Schalter.
  20. T

    [C]progress bar

    Das Erkennen der Breite des Terminals -- statt der fest eingebauten 80 -- überlasse ich dem geneigten Leser als Übungsaufgabe. #include <assert.h> #include <stdio.h> #include <string.h> #include <unistd.h> static void print_progress(FILE* const out, char const* const label, unsigned const idx...
  21. T

    Willkommen in Xenforo

    \o/
  22. T

    Quake3 und dsp1 (statt dsp0)

    ioq3 nutzt SDL. Daher kannst du einfach die Umgebungsvariable SDL_PATH_DSP entsprechend auf /dev/dsp1 setzen.
  23. T

    firefox 23 - Port compiliert nicht

    Leider hast du keine Fehlermeldung zitiert. Aber vermutlich versucht er es mit dem clang im System zu bauen, was schlicht nicht geht, weil der hinreichend kaputt ist. Versuch ihn mit gcc 4.6 oder neuer zu bauen: echo 'USE_GCC ?= 4.6+' > www/firefox/Makefile.local
  24. T

    firefox lässt sich nicht 'upgraden'

    FF21 gebaut mit dem System-clang auf einem 9er FreeBSD war bei mir mit exakt der Fehlermeldung kaputt. Die Fehlermeldung ist übrigens grober Unfug und (dieser inzwischen ziemlich alte) clang ist einfach kaputt. Damit sollte es gehen: cd /usr/ports/www/firefox make USE_GCC=4.6+
  25. T

    gnu make frage

    In Make? Quasi gar nicht. Daher siehe die Alternative.
Zurück
Oben