Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: soyloqbuskas en 23 Enero 2012, 01:00 am



Título: Librerias linux vs windows
Publicado por: soyloqbuskas en 23 Enero 2012, 01:00 am
¡Buenas a todos!

Resulta que tengo hecha una mini Shell para linux, y quiero adaptarla a windows, y para ello necesito adaptar las librerias...

Tengo 3 errores de compilacion:
   1)  Demasiados argumentos en la funcion mkdir
Código:
         result = mkdir(ArrayParser[1] ,00700);

   2)  Variable _SC_PAGE_SIZE no declarada...
Código:
         size_t len = (size_t) sysconf(_SC_PAGE_SIZE);

   3)   Variables PROT_READ y MAP_SHARED no declaradas en la funcion mmap()
Código:
          mem = mmap(NULL, len, PROT_READ, MAP_SHARED, fd, 0);

¿Alguna idea de como adpatar esto a windows?

NOTA: La Shell en linux compila y funciona perfectamente!

Gracias, un saludo!


Título: Re: Librerias linux vs windows
Publicado por: Eternal Idol en 23 Enero 2012, 01:28 am
¿Que entorno (compilador, librerias, etc). estas usando? Los problemas que mencionas son todos relacionados con POSIX y no con C o C++ standard.

1) Pasa solamente el nombre o usa la API de Windows: CreateDirectory (http://msdn.microsoft.com/en-us/library/windows/desktop/aa363855%28v=vs.85%29.aspx).

2/3) Si estas usando la API de Windows podes hacerlo con CreateFileMapping (http://msdn.microsoft.com/en-us/library/windows/desktop/aa366537%28v=vs.85%29.aspx) y MapViewOfFile (http://msdn.microsoft.com/en-us/library/windows/desktop/aa366761%28v=vs.85%29.aspx).


Título: Re: Librerias linux vs windows
Publicado por: armizh en 23 Enero 2012, 01:46 am
Primero, dos objeciones:
1. Si bien las librerias tanto en win como en linux poseen las mismas funciones ya que son estandares, mkdir no existe en windows proque es un comando unix.
2. Como dije anteriormente, las funciones son las mismas pero las variables dependen de las funciones del SO, tal vez las variables que utilizas son creadas por linux.
Lee alguna documentacion de windows o MS DOS que son los que se aceptan en la consola.
Saludos.


Título: Re: Librerias linux vs windows
Publicado por: soyloqbuskas en 23 Enero 2012, 16:38 pm
¡Muchas gracias a los 2!

Al final he hecho lo que sugeria Eternal Idol, he usado las funciones CreateDirectory() y CreateFileMapping()

¡Un saludo!


Título: Re: Librerias linux vs windows
Publicado por: Eternal Idol en 23 Enero 2012, 16:54 pm
De nada, otra alternativa seria usar algo como Cygwin (http://en.wikipedia.org/wiki/POSIX#POSIX_for_Windows).


Título: Re: Librerias linux vs windows
Publicado por: Akai en 23 Enero 2012, 18:17 pm
Pequeño apunte, ten en cuenta que las funciones a las que te refieres no pertenecen al grupo de librerías que provee el compilador, sino a las que integran el API del sistema operativo. Por tanto, van a cambiar entre un sistema y otro.


Título: Re: Librerias linux vs windows
Publicado por: soyloqbuskas en 23 Enero 2012, 23:59 pm
¡Gracias por los aportes, un saludo!