Autor Thema: fprintf Funktioniert nicht  (Gelesen 20231 mal)

OsDevNewbie

  • Beiträge: 282
    • Profil anzeigen
    • YourOS Kernel
Gespeichert
« Antwort #20 am: 29. March 2013, 22:34 »
Also ich habe va_arg und alle zugehörigen Makros in der Datei stdarg.h definiert und die sieht wie folgt aus:
#ifndef STDARG_H_
#define STDARG_H_

#ifdef __cplusplus
extern "C" {
#endif

#ifndef _VA_LIST
#define _VA_LIST
typedef void *va_list;
#endif

#if (defined(__BUILTIN_VA_ARG_INCR) || defined(sparc) || defined(__sparc) || \
    defined(i386) || defined(__i386)) && !(defined(lint) || defined(__lint))

#define va_start(list, name) (void) (list = (va_list) &__builtin_va_alist)
#define va_arg(list, mode) ((mode *)__builtin_va_arg_incr((mode *)list))[0]

#else

#if __STDC__ != 0 /* -Xc compilation */
#define va_start(list, name) (void) (list = (void *)((char *)&name + \
((sizeof (name) + (sizeof (int) - 1)) & ~(sizeof (int) - 1))))
#else
#define va_start(list, name) (void) (list = (void *)((char *)&...))
#endif /* __STDC__ != 0 */
#define va_arg(list, mode) ((mode *)(list = (char *)list + sizeof (mode)))[-1]

#endif /* (defined(__BUILTIN_VA_ARG_INCR) || ... */

extern void va_end(va_list);
#define va_end(list) (void)0

#ifdef __cplusplus
}
#endif

#endif /* STDARG_H_ */
Viele Grüsse
OsDevNewbie

Ein Computer ohne Betriebsystem ist nicht mehr wert als ein Haufen Schrott.
Ein Computer ist eine Maschine, die einem Lebewesen das kostbarste klaut, was sie selber nicht hat:
DIE ZEIT DES LEBENS

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #21 am: 30. March 2013, 17:07 »
Wo hast du den Header her?

Wie bereits vorgeschlagen solltest du mal die Built-Ins versuchen:
typedef __builtin_va_list va_list;
#define va_start(ap, X) __builtin_va_start(ap, X)
#define va_arg(ap, type) __builtin_va_arg(ap, type)
#define va_end(ap) __builtin_va_end(ap)

Außerdem ist es natürlich wichtig, dass wenn du printf aufrufst, die Funktion vorher mit der korrekten Signatur deklariert wird.
« Letzte Änderung: 30. March 2013, 17:10 von Jidder »
Dieser Text wird unter jedem Beitrag angezeigt.

tiger717

  • Beiträge: 84
    • Profil anzeigen
Gespeichert
« Antwort #22 am: 31. March 2013, 23:39 »
Das kann ich bestätigen, builtin funktioniert am Besten.

OsDevNewbie

  • Beiträge: 282
    • Profil anzeigen
    • YourOS Kernel
Gespeichert
« Antwort #23 am: 01. April 2013, 22:49 »
Hallo,
die Datei habe ich von dieser Adresse.
Die printf-Funktion funktioniert jetzt. Naja so schnell kann sich ein Fehler einschleichen.
Danke nochmals.
Viele Grüsse
OsDevNewbie

Ein Computer ohne Betriebsystem ist nicht mehr wert als ein Haufen Schrott.
Ein Computer ist eine Maschine, die einem Lebewesen das kostbarste klaut, was sie selber nicht hat:
DIE ZEIT DES LEBENS

Martin Erhardt

  • Beiträge: 165
    • Profil anzeigen
Gespeichert
« Antwort #24 am: 02. April 2013, 21:05 »
/* Copyright (c) 1988 AT&T */
/*   All Rights Reserved  */

/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
/* The copyright notice above does not evidence any    */
/* actual or intended publication of such source code. */
Darf ich das sehen?

OsDevNewbie

  • Beiträge: 282
    • Profil anzeigen
    • YourOS Kernel
Gespeichert
« Antwort #25 am: 02. April 2013, 22:49 »
Ich verstehe dich nicht  :?
Viele Grüsse
OsDevNewbie

Ein Computer ohne Betriebsystem ist nicht mehr wert als ein Haufen Schrott.
Ein Computer ist eine Maschine, die einem Lebewesen das kostbarste klaut, was sie selber nicht hat:
DIE ZEIT DES LEBENS

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #26 am: 03. April 2013, 11:25 »
Ich würde die Finger davon lassen. Spätestens wenn du (bewusst oder unbewusst) kopierst, hast du ein Problem.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

Martin Erhardt

  • Beiträge: 165
    • Profil anzeigen
Gespeichert
« Antwort #27 am: 03. April 2013, 14:22 »
Ich verstehe dich nicht  :?
Solange du den Code nicht veröffentlichst ist es sowieso egal und wenn du es veröffentlichst interessiert es eig auch keinen, aber es gibt keine Garantie.
Außerdem kann man mit kopiertem eig proprietären Code nicht gut angeben und das wollen wir doch alle ;) .
« Letzte Änderung: 03. April 2013, 14:24 von Martin Erhardt »

OsDevNewbie

  • Beiträge: 282
    • Profil anzeigen
    • YourOS Kernel
Gespeichert
« Antwort #28 am: 03. April 2013, 17:33 »
Achso ok, naja ich verwende diese Datei ja sowieso nicht mehr, da sie sowieso nicht funktioniert.
Viele Grüsse
OsDevNewbie

Ein Computer ohne Betriebsystem ist nicht mehr wert als ein Haufen Schrott.
Ein Computer ist eine Maschine, die einem Lebewesen das kostbarste klaut, was sie selber nicht hat:
DIE ZEIT DES LEBENS

 

Einloggen