strtok_s funciona como c linux thread-safety strtok

funciona - Función Strtok seguridad de hilo



strtok php (2)

strtok() no es reentrante, por lo que no debe usarse desde aplicaciones de subprocesos, use strtok_r() lugar.

He pasado algo de tiempo en la depuración de un programa que da fallas de segmentación. El error es bastante indeterminista e intermitente, lo cual es molesto. Lo reduje a la llamada de strtok. Sospecho que es la llamada de strtok para dividir la cadena en dos hilos diferentes lo que causa la falla de segmentación. ¿Puedo llamar a strtok en dos hilos diferentes?

Gracias.


strtok() no es seguro para MT porque almacena algunas variables intermedias globalmente y las reutiliza en cada llamada (ver que no tiene que volver a pasar la cadena cada vez que llame a strtok() ). Puede echar un vistazo a las páginas de manual de los métodos que está utilizando y siempre se indica al final si es seguro para MT o no.

Cuando un método no es seguro para MT (multihilo seguro o reentrante), debe buscar el mismo método con el sufijo _r que significa reentrand. En su ejemplo, strtok_r() como se sugiere en la otra respuesta.