Re: Frage an C-Programmierer

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Tue, 5 Apr 2005 18:14:47 +0200 (CEST)

Dieter Rauschenberger <dr(at)d-ra.de> wrote:
> ich denke folgendes Problem kann ein BSD C-Programmierer lösen:

Das hat eigentlich nichts mit BSD zu tun.

> Ich wollte den Port audio/jack bauen (Version 0.99.0), da portversion
> ihn als veraltet meldete. Beim Compilieren brach das make in der Datei
> drivers/oss/oss_driver.c im Header <sys/soundcard.h> ab. Es wurden
> folgende Bezeichner angemeckert:
>
> u_long
> u_char
> u_short
> u_int
> [...]
> Jetzt meine Fragen:
>
> * Wie müsste man das Ganze fachgerecht angehen?

Den Autor der include-Datei mit einem dicken Buch hauen,
auf dem vorne »IEEE Std 1003.1-2001« draufsteht.

> * Was bedeutet das __BSD_VISIBLE
> * Wenn das __BSD_VISIBLE==TRUE sein müsste, an welcher Stelle müsste man
> das definieren? Irgendwo im Makefile? In welchem?

Es ist per default 1 (»true«), es sei denn, daß irgendwo im
Anwendungssource _ANSI_SOURCE definiert wird. Für die mei-
sten Dinge sollte man das tunlichst unterlassen.

Das ändert aber nichts daran, daß u_long usw. kein Standard
sind. Wenn man sie (als Programmierer) braucht und zum Tip-
pen von »unsigned long« zu faul ist, sollte man sich selbst
etwas Geeignetes typedef'en, oder die Standard-Typen aus
<stdint.h> verwenden.

In Deinem konkreten Fall guck mal nach, ob irgendwo _ANSI_-
SOURCE definiert wird. Wenn ja, patche das raus.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"C++ is the only current language making COBOL look good."
        -- Bertrand Meyer
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 05 Apr 2005 - 18:15:48 CEST

search this site