Bienvenido a Linux Party
 ._ Inicio | Foros | Envía Tu Historia | Tu Cuenta | Contenidos | Topics | Top 15
 
Tus Favoritos en del.icio.us. Guardar!
LinuxParty
· Home
· Envía tu Historia.
· Recomiéndanos
· Búsqueda
· Descargas
· Encuestas
· Estadísticas
· FAQ
· Hemeroteca
· Juegos
· Opinión
· Retroalimentación
· Ofertas partners.
· AvantGo
· Foros
· Members List
· Su Cuenta

En Línea
Actualmente hay 113 invitados, 0 miembro(s) conectado(s).

Eres un usuario anónimo. Puedes registrarte aquí

TopBlock
· 1: Cómo configurar la tarjeta de Red Inalámbrica ( WiFi ) en Linux. - (63997 Lecturas)
· 2: Cómo configurar el Modem USB o Tarjeta GPRS / 3G para Linux. - (46630 Lecturas)
· 3: Manual para hackear una red wifi - (46279 Lecturas)
· 4: Exportar Bases de Datos de Access (MDB) a MySQL - (30706 Lecturas)
· 5: Cambiar la Hora y la Fecha al sistema Linux - (28563 Lecturas)
· 6: No encuentro la página de los cojones - (24792 Lecturas)
· 7: Cómo bloquear fotos e imágenes porno con SafeSquid, servidor proxy - (24587 Lecturas)
· 8: Redireccionar puertos ( iptables / ipchains / proxy / squid ) - (19689 Lecturas)
· 9: Sexo, Violencia, y Tensión en los Juegos. - (19194 Lecturas)
· 10: Activar Compiz Fusion en Ubuntu 8.10 Desktop (NVIDIA GeForce FX 5200) - (18924 Lecturas)
· 11: Programar y depurar en un IDE para PHP, plugin phpeclipse, xdebug y Remote debug - (18116 Lecturas)
· 12: Lara Croft Desnuda! - (17097 Lecturas)
· 13: Conexión Linux GPRS/EDGE via bluetooth, Cómo. - (16747 Lecturas)
· 14: Descargar videos de YouTube y Google video con Firefox - (15618 Lecturas)
· 15: Activar Compiz Fusion en Ubuntu 8.04 LTS Desktop (NVIDIA GeForce FX 5200) - (14314 Lecturas)
· 16: Las chicas virtuales más guapas - (13818 Lecturas)

Usarios, Info
nada Bienvenido, Un Partydario
Nickname
Contraseña
(Regístrate)
nada Membresía:
nada Último: GraiskCraws
nada Nuevos Hoy: 0
nada Nuevos Ayer: 3
nada Total: 1833

nada Gente en línea:
nada Visitantes: 113
nada Miembros: 0
nada Total: 113

Tutorial de Linux


pix.gif
  
Tratar su código C como scripts C con C Cod
Enviado el Lunes, 24 noviembre a las 00:40:00
Tópico: Programación
ProgramaciónC Cod es un front end para C, C++, o compiladores objeto de C que le permite tratar C como un lenguaje más de scripting. C Cod viene con C Server Pages, que proporciona soporte para CGI para que usted pueda escribir aplicaciones Web en C o C++ y tenerlos automáticamente bajo demanda.


No hay paquetes de C Cod para Ubuntu, Fedora u openSUSE. Voy a construir desde el código fuente usando la versión 1.2.8 en un equipo de 64 bits con Fedora 9. Me encontré con un ligero tirón durante la compilación que se puede resolver mediante la adición de una opción para la posición independiente de código a su CFLAGS como se muestra a continuación. El código PIC tiene la ventaja de que puede ser cargado en distintos lugares de la memoria; lo que es útil para la compilación del código para las bibliotecas compartidas, ya que les permiten ser movidas cuando múltiples bibliotecas quieren la misma dirección.

$ tar xzvf /.../ccod-1.2.8.tar.gz
$ cd ./ccod-*/
$ ./configure
$ make
/usr/bin/ld: csp.o: relocation R_X86_64_32 against `a local symbol' can not be used
when making a shared object; recompile with -fPIC
csp.o: could not read symbols: Bad value

$ vi Makefile
PACKAG = ccod-1.2.8
LFLAGS = -shared -Wl,-soname,libcsp.so
CFLAGS = -O2 -fPIC
LIBSTA = *.a
$ make clean
$ make
$ sudo make install


Mi primer intento de utilizar ccod obtiene un segfault, como se muestra a continuación.

$ cat main1.c 
#!/usr/bin/ccod
#pragma CCOD:script no

int main( int argc, char** argv )
{
printf("hi there ");
return 0;
}

$ chmod +x main1.c
$ ./main1.c
Segmentation fault


Excavando en esto, he encontrado que la función cksum() es la causa. Tras la experimentación, el siguiente cambio con el tamaño de la variable s parece solucionar la cuestión (o al menos ya no se estrelló).

$ gdb /usr/bin/ccod
(gdb) r main1.c
...
(gdb) bt
#0 0x0000000000404554 in cksum (path=0x10f3390
"/home/ben/testing/ccod/hello-world.c") at ccod.c:1306
#1 0x000000000040441b in get_sourcesum () at ccod.c:1203
#2 0x0000000000409605 in main (in_argc=2, in_argv=0x7fff6008bcd8) at ccod.c:3398
(gdb) q

$ vi /home/ben/testing/ccod/hello-world.c
...
static unsigned long
cksum(const unsigned char *path)
{
// register unsigned long i, c, s = 0;
register unsigned long i, c = 0;
int s = 0;
...

... recompile and reinstall ccod ...

$ ./main1.c
hi there
En el ejemplo anterior he usado ccod de una forma que deja su código fuente más próximo a lo que sería un nivel normal de lo que es un archivo de C. Así de simple, para aquellos programas sencillos sólo necesitarás añadirles las dos líneas de código en el código fuente para que puedan ser utilizados con ccod. La mayoría de los ejemplos en el sitio Web de ccod, utilizan una mezcla entre la sintaxis de C y la de PHP. Por ejemplo, en el siguiente archivo, el aviso de que ya no hay una función main(), y que cualquier texto que se encuentra fuera del bloque

$ cat ./main2.c
#!/usr/bin/ccod

hi there

<?
printf("and more ");
return 0;
?>

$ chmod +x ./main2.c
$ ./main2.c

hi there

and more


La invasora sintaxis funciona bien si usted desea utilizar ccod Web con la programación web de C Server Pages. La documentación de la página enumera una pequeña colección de funciones que hacen que la programación CGI con C Server Pages sea bastante "pasable". Las funciones que uno espera para la programación Web, tales como la manipulación de sesiones, cookies, formularios, acceso a las cadena de consulta, y la redirección, están disponibles como funciones normales de C Server Page.

En el primer ejemplo he utilizado #pragma CCOD:script para modificar la forma ccod manejará el archivo de C de origen. El proyecto prevé cerca de una docena de tales pragmas, lo que le permite especificar qué compilador utilizar, que banderas (flags) invocar al compilador; con que bibliotecas adicionales podrá vincular el programa, y unas pocas opciones específicas para el C Server Page.

Como ccod crea una caché como si fueran binarios compilados, su código fuente no es compilado cada vez que lo ejecuta. Por supuesto, que mi pequeña función cksum no está completamente probada y puede romper la memoria caché. El problema parece ser que es la variable s que devolvía valores que eran demasiado grandes, por lo que se cambió el tipo de datos.

Si usted tiene un código en C o C++ y desea exponer parte de su funcionalidad a la web de prototipos, C Cod podría ser sólo el billete. Por la simplicidad de su código, compilar, ejecutar ciclos de prueba C Cod le puede ayudar a evitar siempre tener que crear makefiles o preocuparse por el proceso de compilación en absoluto.

Ben Martin ha estado trabajando en sistemas de ficheros más de 10 años. . Completó su doctorado y ahora ofrece servicios de consultoría, se centró en libferris, sistemas de archivos, y buscar soluciones.

Fuente: Linux.com, traducción Linux-Party.com




del.icio.us Guardar.
Tratar su código C como scripts C con C Cod

Comparte este artículo...
Share |


Noticias relacionadas...
·El HipHop de Facebook también es un servidor web PHP
·Flash Player JavaScript y Open Source.
·¿Por qué Deberíamos usar OpenGL y no DirectX?
·Aceptación y Adopción de Lenguajes de Programación (2009 / 2010)
·¿Cómo enseñar a programar a un chico de 12 años?
·HTML5 será capaz de usar nuestro hardware
·IXThemes Temas y plantillas para Webs
·¿Cuando los desarrolladores trabajan hasta tarde, debe permanecer el encargado?
·Wix, para crear tu página en flash de forma sencilla, en Linux, Windows y Mac.
·El impacto ambiental de PHP en comparación con C++ En Facebook
·Herramienta Web para gestionar tu Hotel, Residencia, Casa Rural, etc...
·WAJAF, mmmmmm, a medio camino entre Ajax y JavaScript (o lo mismo)
·Saros, plugin de Eclipse para programación par a distancia o distribuida en pare
·Herramientas de depuración de PHP ( PHP debug tools )
· odsPhpGenerator, genera hojas de cálculo desde PHP.
" odsPhpGenerator, genera hojas de cálculo desde PHP." | Entrar/Crear Cuenta | 0 Comentarios
Los comentarios son propiedad de quien los envió. No somos responsables por su contenido.
 
Ads Patrocinadores.

Login
Nickname

Contraseña

Código de Seguridad: Código de Seguridad
Teclea Código de Seguridad

¿Todavía no tienes una cuenta? Puedes crearte una. Como usuario registrado tendrás ventajas como seleccionar la apariencia de la página, configurar los comentarios y enviar los comentarios con tu nombre.

Anuncios.

Enlaces Relacionados
· Más Acerca de Programación
· Noticias de adminweb


Noticia más leída sobre Programación:
Programar y depurar en un IDE para PHP, plugin phpeclipse, xdebug y Remote debug


Votos del Artículo
Puntuación Promedio: 0
votos: 0

Por favor tómate un segundo y vota por este artículo:

Excelente
Muy Bueno
Bueno
Regular
Malo


Opciones

 Versión Imprimible Versión Imprimible