Usar fprintf asi desde un FFI esta mal porque fprintf puede ser un macro. http://pubs.opengroup.org/onlinepubs/7908799/xsh/stdio.h.html
No tienen ganas de ver como se hace en otros Smalltalks? 2013/12/23 Juan <[email protected]> > Emilio > > Caching the functions probably improves the performance a lot. I can > imagine two caches (for *printf functions): > - a larger cache which has typeInfo -> externalFunction mapping > - a smaller cache which maps formatString -> typeInfo > > The problem with this method is that FILE structure is platform specific > > > 2013/12/23 Emilio Oca <[email protected]> > >> Gera, que honor que me respondas!! >> >> Si, eso trate de entrada (de hecho es lo que necesito), pero no funciona >> asi, el piping no esta habilitado. todo lo que le pongas lo toma como >> parametro de entrada al comando o funcion que invoques y no como una >> indicacion al SO para que ejecute un segundo comando que seria el piping. >> Creo que eso tien algo de sentido. Por eso me enfoque en tratar de hacer >> algo con el handle que te dejan esas operaciones.... pero no logre nada. >> Todo va via FFI y me supera :( >> >> Alguna pista que pueda seguir? >> >> Gracias >> >> Emilio >> >> >> >> 2013/12/23 Gerardo Richarte <[email protected]> >> >>> Hola Emilio. La verdad no se, pero quizás podés ejecutar el comando >>> redireccionando la salida a un file (con > ) y después levantar el file... >>> por lo menos mientras conseguís una solución de verdad (que va a tener que >>> ver con abrir unos handles y redireccionar las salida (y entrada) a los >>> handles. >>> >>> saludos! >>> >>> >>> >>> 2013/12/23 Emilio Oca <[email protected]> >>> >>> Hola >>>> >>>> Alguien sabe como puedo capturar desde pharo las salida de una consola >>>> invocada desde NativeBoost? >>>> >>> -- >>> -- >>> To post to this group, send email to [email protected] >>> To unsubscribe from this group, send email to >>> [email protected] >>> >>> http://www.clubSmalltalk.org >>> --- >>> Has recibido este mensaje porque estás suscrito al grupo "ClubSmalltalk" >>> de Grupos de Google. >>> Para anular la suscripción a este grupo y dejar de recibir sus correos >>> electrónicos, envía un correo electrónico a >>> [email protected]. >>> Para obtener más opciones, visita >>> https://groups.google.com/groups/opt_out. >>> >> >> -- >> -- >> To post to this group, send email to [email protected] >> To unsubscribe from this group, send email to >> [email protected] >> >> http://www.clubSmalltalk.org >> --- >> Has recibido este mensaje porque estás suscrito al grupo "ClubSmalltalk" >> de Grupos de Google. >> Para anular la suscripción a este grupo y dejar de recibir sus correos >> electrónicos, envía un correo electrónico a >> [email protected]. >> Para obtener más opciones, visita >> https://groups.google.com/groups/opt_out. >> > > Puede que este thread ayude, > > > https://mail.google.com/mail/u/0/#search/Nativeboost+stdout/12b503071b890311 > puede > servir. > te copio la parte relevante, para hacer pruebas rapido. > > Well, i made a callout to printf() via NativeBoost in Linux, >> but was unable to determine if it works, because when i run it, it >> prints nothing on console. >> Probably because stdout is closed by default and i need to reopen it >> first. >> > > You can always use fprintf :). A few years ago I wrote an incomplete API > for stdio on windows which worked like this: > > fprintf := ExternalLibraryFunction > name: 'fprintf' > module: 'msvcrt.dll' > callType: ExternalFunction callTypeCDecl > returnType: ExternalType signedLong > argumentTypes: { > (ExternalType structTypeNamed: #FILE) asPointerType. > ExternalType string. > ExternalType signedLong }. > file := Stdio default fopenWith: 'test.txt' with: 'w'. > fprintf invokeWith: file with: 'Your number is %d.' with: 42. > Stdio default fcloseWith: file. > > > saludos > felices fiestas > jmdc > > -- > -- > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > > http://www.clubSmalltalk.org > --- > Has recibido este mensaje porque estás suscrito al grupo "ClubSmalltalk" > de Grupos de Google. > Para anular la suscripción a este grupo y dejar de recibir sus correos > electrónicos, envía un correo electrónico a > [email protected]. > Para obtener más opciones, visita https://groups.google.com/groups/opt_out > . > -- -- To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] http://www.clubSmalltalk.org --- Has recibido este mensaje porque estás suscrito al grupo "ClubSmalltalk" de Grupos de Google. Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a [email protected]. Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
