Forum: Compiler & IDEs MinGW64 - strsep()


von Walter T. (nicolas)


Lesenswert?

Hallo zusammen,

ich stelle gerade mit Erstaunen fest, dass unter MinGW 64 die Funktion 
"strsep()" (Ersatz für strtok()) unbekannt zu sein scheint - ganz im 
Gegenteil zu ARM-GCC und AVR-GCC.

Weiss jemand, an welche Einstellung das Vorhandensein dieser Funktion 
gekoppelt ist?

Viele Grüße
W.T.

von Jack (Gast)


Lesenswert?

Walter T. schrieb:
> Hallo zusammen,
>
> ich stelle gerade mit Erstaunen fest, dass unter MinGW 64 die Funktion
> "strsep()" (Ersatz für strtok()) unbekannt zu sein scheint - ganz im
> Gegenteil zu ARM-GCC und AVR-GCC.

Das Konzept von MinGW  ist, Zitat von der Webseite:

>> MinGW compilers provide access to the functionality of the Microsoft C
>> runtime and some language-specific runtimes.

Das heißt, du bekommst einen Compiler der die Microsoft-Bibliotheken 
nutzt. Ist da kein strsep() drin (habe ich nicht kontrolliert), dann 
hast du kein strsep().

> Weiss jemand, an welche Einstellung das Vorhandensein dieser Funktion
> gekoppelt ist?

Noch ein Zitat:
>> MinGW, being Minimalist,
>> does not, and never will, attempt to provide a POSIX runtime environment
>> for POSIX application deployment on MS-Windows.

Das heißt, "wenn nicht ist, dann ist nicht" und wird auch nicht kommen.

Die Lösung? Letztes Zitat:

>> If you want POSIX
>> application deployment on this platform, please consider Cygwin instead.

* Compiler wechseln.

Oder, wenn das nicht geht, z.B.:

* Source-Code für strsep() suchen 
(https://www.mail-archive.com/busybox@busybox.net/msg11257.html letzter 
Teil des Patches)

* Anhand der man-Page selber programmieren.

* strtok() nehmen

von Jim M. (turboj)


Lesenswert?

Busybox ist GPL.

Für eigene Projekte würde ich lieber bei den *BSD nachschauen, ob da ein 
strsep() drin ist.

von Dr. Sommer (Gast)


Lesenswert?

strsep() ist halt nicht Teil des C-Standards...

von Walter T. (nicolas)


Lesenswert?

Dr. Sommer schrieb:
> strsep() ist halt nicht Teil des C-Standards

Es ist nicht Teil des Standards. Trotzdem liefert GCC in einigen 
Geschmacksrichtungen es mit.

von Rolf M. (rmagnus)


Lesenswert?

Walter T. schrieb:
> Dr. Sommer schrieb:
>> strsep() ist halt nicht Teil des C-Standards
>
> Es ist nicht Teil des Standards. Trotzdem liefert GCC in einigen
> Geschmacksrichtungen es mit.

Nicht gcc liefert das mit, sondern die libc. Und das ist im Falle von 
mingw halt die von Microsoft.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.