| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
sheko7
Registrado: 11 Abr 2006 Mensajes: 12
| Publicado: 30/10/2007 5:34 pm | | | Título: problema con los #include |
| Bueno, mi profesor nos puso un codigo de ejemplo para hacer una tarea, pero tengo un problema con los include (y lamentablemente no puedo preguntarle a mi profesor por que tuvo que viajar por toda esta semana), no me reconoce algunos include (que yo jamas habia utilizado antes), aqui les dejo el codigo completo (puede que tenga algo mal escrito por que lo escribi desde una guia y como todabia no me compila, no he visto los posibles errores de escritura)
| Código: | // ejemplo_profe.c
#include <stdio.h>
#include <sys/time.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
#include <errno.h>
struct nodo {
struct nodo *next;
int k;
char c;
};
char *seg_init, *disponible;
int id_seg;
void *shared_malloc(size_t size){
void *addr;
addr = (void *)disponible;
disponible += size + 1;
return addr;
}
main(){
struct nodo *p, *q;
// ejemplo q crea una lista de 3 nodos
//solicitamos memoria al sistema operativo. La funcion shmget retorna cdigo
//del segmento de datos. Esta caracteristica forma parte del modulo IPC del kernel
if((id_seg = shmget(IPC_PRIVATE, 4096, 0660)) == -1){
perror (strerror(errno)); // imprime mensaje indicando causa de error
exit(-1);
}
// obtenemos el puntero a dicha memoria o segmento compartido
seg_init = (char *)shmat(id_seg, (char*),0, 0);
disponible = (char *)seg_init;
printf("Tamaño del nodo %d bytes \n", sizeof(struct nodo));
// llamamos a nuestra funcion shared_malloc para crear el primer nodo de la list
p = (struct nodo *)shared_malloc(sizeof(struct nodo));
p->c = ŽcŽ;
p->k = 100;
q->next = p;
//creamos el 3er nodo
p = (struct nodo *)shared_malloc(sizeof(struct nodo));
p->c = ŽjŽ;
p->k = 75;
p->next = q;
q = p;
printf("Ahora recorremos la lista completa y mostramos el contenido de cada nodo \n");
while( q!= NULL) {
printf("el char: %c el entero: %d el puntero next: 0x%x, y el puntero q: 0x%x \n", q->c, q->k, q->next, q);
q = q->next;
}
shmdt((char *)seg_init); // el progreso se desliga del segmento compartido
shmctl(id_seg, IPC_RMID, 0); // destruye el segmento de memoria compartido
}
|
los errores que me dan son los siguientes
ejemplo_profe.c:1:19: error: stdio.h: No existe el fichero ó directorio ejemplo_profe.c:2:22: error: sys/time.h: No existe el fichero ó directorio ejemplo_profe.c:3:20: error: unistd.h: No existe el fichero ó directorio ejemplo_profe.c:4:23: error: sys/types.h: No existe el fichero ó directorio ejemplo_profe.c:5:21: error: sys/ipc.h: No existe el fichero ó directorio ejemplo_profe.c:6:21: error: sys/shm.h: No existe el fichero ó directorio ejemplo_profe.c:7:21: error: sys/sem.h: No existe el fichero ó directorio ejemplo_profe.c:8:19: error: errno.h: No existe el fichero ó directorio ejemplo_profe.c:10:27: error: sys/stat.h: No existe el fichero ó directorio
Entre otros errores mas que supongo que se arreglaran si arreglo esto. He intentado compilarlo con Dev-c, Visual C++ 2005 express y con la shell de Ubuntu, pero en todos me da el mismo problema, espero que me puedan ayudar, de antemano muchas gracias |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 3650 Ubicación: Mexico
| Publicado: 31/10/2007 6:44 am | | | Título: |
| Parece ser que el error se debe a que tienes mal configurados los tres entornos ya que en el peor de los casos los headers de la biblioteca estandar de C (espero que no sea C++) como <stdio.h> deberian ser reconocidos por los tres entornos. Los otros headers como <unistd.h>, <sys/types.h>, etc. pueden generar errores dependiendo si el compilador los soporta o no.
En el caso de Dev-C++ (utilizando GCC/Cygwin como compilador) este reconoce todos los archivos de inclusion y supongo que el otro compilador (MinGW) tampoco debe generar problemas siempre y cuando este configurado correctamente.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
sheko7
Registrado: 11 Abr 2006 Mensajes: 12
| Publicado: 31/10/2007 3:20 pm | | | Título: |
| reinstale el dev y ahora solo me salen estos errores
ejemplo_profe.c:5:21: error: sys/ipc.h: No existe el fichero ó directorio ejemplo_profe.c:6:21: error: sys/shm.h: No existe el fichero ó directorio ejemplo_profe.c:7:21: error: sys/sem.h: No existe el fichero ó directorio
alguna sugerencia? |
|
| Volver arriba | |
 |
|
rir3760

Registrado: 01 Oct 2004 Mensajes: 3650 Ubicación: Mexico
| Publicado: 31/10/2007 4:48 pm | | | Título: |
| Lo mejor que puedes hacer es preguntarle a tu profesor que compilador se supone que debes utilizar para compilar los ejemplos que este te da ...
... otra opcion es como ya te comente instalar la version de Dev-C++ sin compilador e instalar por separado el entorno Cygwin junto con su version de GCC (CygMing) ya que este ultimo si incluye esos headers, para esto tendria que asesorarte algun otro miembro del foro ya que los compiladores que tengo instalados incluyendo CygMing los utilizo sin el uso de entornos graficos como Dev-C++.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
sheko7
Registrado: 11 Abr 2006 Mensajes: 12
| Publicado: 31/10/2007 8:11 pm | | | Título: |
| | bueno, ahora me funciona un ubuntu (no se que fue lo que hice xD), pero con Dev-c++ sigue sin funcionar, el problema es que estoy acostumbrado a usar compiladores (como el dev y el visual c++), ¿hay algun compilador grafico para linux que me recomienden? |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 3650 Ubicación: Mexico
| Publicado: 01/11/2007 9:06 am | | | Título: |
| Si estas utilizando la version de Dev-C++ con compilador incluido esos errores se deben a que MinGW no incluye lo headers que causan los mentados mensajes.
La solucion a eso es instalar por separado el entorno Cygwin incluyendo su version de GCC y utilizar este (y no MinGW) como el compilador utilizado por Dev-C++.
No quiero sonar como un pesado pero todo esto ya lo habia comentado en mi mensaje anterior.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
|
sheko7
Registrado: 11 Abr 2006 Mensajes: 12
| Publicado: 01/11/2007 1:38 pm | | | Título: |
| | ya instale el cygwin, ¿ahora como lo utilizo con el dev-c? |
|
| Volver arriba | |
 |
|
|