Programación General => C/C++ => Mensaje iniciado por: nagitarami en Sábado 3 de Abril de 2010, 02:40
Título: creando una shell
Publicado por: nagitarami en Sábado 3 de Abril de 2010, 02:40
bueno amigos poco a poco añadire unos codigos ah medida q realice mi proyecto ah fin de saber como se usan las funciones y no tengo experiencia en sus llamadas y sintaxis por ejemplo
Código: C
#include <unistd.h>
int gethostname(char*name,size_t namelen);
claro esto es basico pero empiezo a leer sus funciones y seria bueno agregar ejemplos :lol: bueno me olvide agregar que uso el sistema operativo UBUNTU la ultima version (en el momento que publico este mensaje estoy en la version 9.10 ^_^ y uso el compilador de gcc 4.4.1)
Título: Re: creando una shell
Publicado por: su - en Domingo 4 de Abril de 2010, 21:55
Título: Re: creando una shell
Publicado por: nagitarami en Jueves 8 de Abril de 2010, 01:43
hola amigos,y especialmente al mostro de la programacion quien me ayudo como usar la funcion, me sirvio de mucho, ahora estoy intentando leer los comandos o las instrucciones que el usuario colocara en la shell, pero tengo dudas de como usar la funciones strdup() y strsep() ambas del lenguaje C de la libreria string.h, la unica cosa en concreto que encontre en la internet es esto..
Código: C
#include <string.h>
char*strdup(constchar*s);
char*strsep(char**stringp,constchar*delim);
<_< eh buscado por la internet pero muchos ejemplo encadenados a la funcion que no permite dar un claro uso
gracias de antemano... :beer: :lol:
su - login: password:
xD!...
Título: Re: creando una shell
Publicado por: su - en Jueves 8 de Abril de 2010, 02:24
strdup (http://www.opengroup.org/onlinepubs/009695399/functions/strdup.html) duplica strings :rolleyes: es similar a strcpy. (http://stackoverflow.com/questions/252782/strdup-what-does-it-do-in-c) strsep : leer esto (http://www.gnu.org/s/libc/manual/html_node/Finding-Tokens-in-a-String.html)
Título: Re: creando una shell
Publicado por: nagitarami en Jueves 8 de Abril de 2010, 07:58
Bueno despues de arduo esfuerzo -_- logre saber como usar las funciones strdup() y strsep() en tiempo record :lol: me costo un poco por la sintaxis y la forma como gobierna los tokens a diferencia del strtok :( bueh, tengo un problemilla de como limpiar un struct definido por ejemplo:
una vez que asigno los datos a las variables, jugar con ellas necesito limpiarlo...para volver a usarlo, eh usado las funcion clean(objeto) o free(objeto) pero no funciona, existira otro metodo favorable a mi peticion? :brickwall:
Título: Re: creando una shell
Publicado por: su - en Viernes 9 de Abril de 2010, 02:46
Título: Re: creando una shell
Publicado por: nagitarami en Domingo 11 de Abril de 2010, 02:03
bueno gracias por su ayuda en el foro y a -su xD, bueno ahora tengo un problemita.. y llevo algo de horas, necesito usar la funcion access().. para verificar si existe un un archivo en en el directorio $PATH no eh podido acceder a ella no se si x error sintactico o por permisos de acceso al directorio... si alguien me ayuda con un ejemplo estaria agradecido... bueno eh usados otras struct dirent y struct stat para poder buscar un archivo en una carpeta especifica... y me aparece una lista de archivos pero llegar a ella para validar que existe o no, no eh podido... :mellow: :no: :ouch:
Título: Re: creando una shell
Publicado por: nagitarami en Lunes 12 de Abril de 2010, 20:28
bueno con el tiempo solucione el problema , la funcion access() es una validacion que se toma en cuenta el camino junto con el archivo que se va a utilizar + el modo de consulta que vamos a realizar sobre ese archivo entre ellas tenemos: R_OK W_OK X_OK S_OK, ahora puedo acceder gracias a ello usando ese camino, mi pregunta ahora es lo siguiente, segun mi sistema operativo linux,quiero saber que funciones son propias de la shell y cuales son invocadas en un camino.. por ejemplo CD es un comando propio de la shell, habra otro comandos? como saberlo? :alien:
Título: Re: creando una shell
Publicado por: nagitarami en Lunes 12 de Abril de 2010, 23:41
añadiendo otra cosa necesito saber si un execv(PATH,LINEAORDENES) puede llamar una funcion de si misma, por ejemplo
tengo un archivo compilado de esa forma gcc hola.c -o hola y el archivo hola.c tiene el codigo donde se esta usando el execv lo ejecuto con la linea de codigo ./hola me pide que coloque la instruccion y coloco ./hola para volverlo llamarlo recursivamente, esto es posible?