__STDC__ a strncmp()

Cejka Rudolf cejkar na kazi.dcse.fee.vutbr.cz
Pátek Únor 11 18:51:41 CET 2000


Jan Kasprzak <kas na informatics.muni.cz> wrote:
> 	nevite nekdo, jaka makra musi uzivatel definovat, pokud pozaduje
> prostredi kompatibilni s POSIXem? Napriklad na Linuxu pri

Pro POSIX je _POSIX_SOURCE (verze je v _POSIX_C_SOURCE).
Pro XOPEN je _XOPEN_SOURCE (verze je v _XOPEN_VERSION).

> #include <string.h> bez jakychkoli dalsich definic mam k dispozici
> prototyp funkce strncmp(). Na Solarisu ne a v /usr/include/string.h
> je tento prototyp spolu s dalsimi ohranicen v #ifdef __STDC__.

O jakou verzi Solarisu se jedna? O jaky kompilator se jedna?

Pro preklad pomoci gcc 2.95.2 nebo pro preklad pomoci cc WS5.0 na
Solarisu 7 nic specialniho delat nemusim a prototyp strncmp() se
definuje sam.

__STDC__ je spis zalezitost kompilatoru nez rucnich definic. Takze
pokud je problem ve __STDC__, mozna by neuskodilo podivat se po jinem
kompilatoru (mimochodem - gcc pro Sparc procesory dokaze sem tam
vygenerovat naprosto nefunkcni kod, takze pozor - obcas se musi
hledat chyba nejdriv v kompilatoru a az pak v programu) nebo jine
verzi OS.

> Co teda mam definovat, abych na vsech systemech mel ve string.h
> prototyp strncmp()?

Definicni soubor pro autoconf - a zkouset a zkouset a zkouset...

A beztak to nebude fungovat.

-- 
Rudolf Cejka   (cejkar na dcse.fee.vutbr.cz;  http://www.fee.vutbr.cz/~cejkar)
Brno University of Technology, Faculty of El. Engineering and Comp. Science
Bozetechova 2, 612 66  Brno, Czech Republic


Další informace o konferenci Linux