S_ISREG macro undefined

Preguntas

¿Son las macros de posix S_ISREG, S_ISDIR, etc. linux solamente? Necesito averiguarlo porque estoy tratando de compilarRIZO Y está tratando de usarlos en las ventanas.¿Qué archivo incluido puedo usar para acceder a ellos en Windows?

Este es el código ofensivo.

/*we ignore file size for char/block devices, sockets etc*/
if(S_ISREG(fileinfo.st_mode))
   uploadfilesize= fileinfo.st_size;
}

y causa un error

error LNK2019: unresolved external symbol _S_ISREG referenced in function _operate file tool_operate.obj

Son referenciados en las siguientes preguntas.

¿Cómo usar las macros S_ISREG () y S_ISDIR () POSIX?Diferenciar entre un directorio y archivo unix en C y C ++Problemas para leer directorios en C

Al parecer, S_ISREG () es parte de un grupo de macros de posix y aparentemente se supone que nos dice si un archivo es un "archivo normal" pero todos los ejemplos que encontré tenían archivos de inclusión específicos de linux.

Respuestas a la pregunta(3)

Su respuesta a la pregunta