2010-04-08 15 views
18

cuales forman el programa multiproceso que utilizamos gcc, como a continuación:¿Qué es la bandera _REENTRANT?

gcc -lpthread -D_REENTRANT -o someprogram someprogram.c 

¿qué es exactamente la bandera -D_REENTRANT haciendo por aquí?

+0

Duplicado: http://stackoverflow.com/questions/875789/gcc-do-i-need-d-reentr ant-with-pthreads –

+5

No es realmente un duplicado. La pregunta vinculada preguntaba si -D_REENTRANT es redundante al pasar -pthread; esta pregunta pregunta qué efecto ha tenido -D_REENTRANT (ya sea pasado explícita o implícitamente por -pthread). –

Respuesta

1

Simplemente definió _REENTRANT para el preprocesador. En algún lugar del código asociado, probablemente encontrará #ifdef _REENTRANT o #if defined(_REENTRANT) en al menos algunos lugares.

También tenga en cuenta que el nombre "_REENTRANT: está en el espacio del nombre del implementador (cualquier nombre que comience con un guión bajo seguido de otro guión bajo o mayúscula), por lo que significa que ha salido de lo que define el estándar (al menos el ++ normas.) C o C

+0

Podría ser más específico. Un ejemplo me ayudará a comprender mejor. – Vijay

19

Definición _REENTRANT hace que el compilador utilice hilo de seguridad (es decir, re-entrante) versiones de varias funciones de la biblioteca C.

puede buscar los archivos de cabecera para ver qué sucede cuando está definido.

Cuestiones relacionadas