Viernes 8 de Noviembre de 2024, 20:55
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
creando una shell
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: creando una shell (Leído 2273 veces)
nagitarami
Nuevo Miembro
Mensajes: 19
Nacionalidad:
creando una shell
«
en:
Sábado 3 de Abril de 2010, 02:40 »
0
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
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)
Tweet
su -
Moderador
Mensajes: 2349
Re: creando una shell
«
Respuesta #1 en:
Domingo 4 de Abril de 2010, 21:55 »
0
Ejemplo:
Código: C
#include <unistd.h>
#include <stdio.h>
int
main
(
void
)
{
char
nombre
[
50
]
;
int
error
=
gethostname
(
nombre
,
sizeof
(
nombre
)
)
;
if
(
error
<
0
)
{
fprintf
(
stderr
,
"No se puede saber el nombren"
)
;
exit
(
-
1
)
;
}
printf
(
"Hostname: %sn"
,
nombre
)
;
return
0
;
}
*******PELIGRO LEE ESTO!!*******
There is no place like 127.0.0.1
Conecto luego existo, no conecto luego insisto.
nagitarami
Nuevo Miembro
Mensajes: 19
Nacionalidad:
Re: creando una shell
«
Respuesta #2 en:
Jueves 8 de Abril de 2010, 01:43 »
0
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
(
const
char
*
s
)
;
char
*
strsep
(
char
**
stringp
,
const
char
*
delim
)
;
eh buscado por la internet pero muchos ejemplo encadenados a la funcion que no permite dar un claro uso
gracias de antemano...
su -
login:
password:
xD!...
su -
Moderador
Mensajes: 2349
Re: creando una shell
«
Respuesta #3 en:
Jueves 8 de Abril de 2010, 02:24 »
0
strdup
duplica
strings
es similar a strcpy.
strsep :
leer esto
*******PELIGRO LEE ESTO!!*******
There is no place like 127.0.0.1
Conecto luego existo, no conecto luego insisto.
nagitarami
Nuevo Miembro
Mensajes: 19
Nacionalidad:
Re: creando una shell
«
Respuesta #4 en:
Jueves 8 de Abril de 2010, 07:58 »
0
Bueno despues de arduo esfuerzo
logre saber como usar las funciones strdup() y strsep() en tiempo record
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:
Código: C
typedef
struct
{
char
*
nombre
[
12
]
;
int
tam
;
}
objeto
;
free
(
objeto
)
;
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?
su -
Moderador
Mensajes: 2349
Re: creando una shell
«
Respuesta #5 en:
Viernes 9 de Abril de 2010, 02:46 »
0
Con algo como:
Código: C
typedef
struct
{
char
*
nombre
[
12
]
;
int
tam
;
}
objeto
;
...
objeto
*
miobjeto
Hacemos:
Código: C
void
DestruirObjeto
(
objeto
*
miobjeto
)
{
free
(
miobjeto
->
nombre
)
;
miobjeto
->
tam
=
0
;
}
*******PELIGRO LEE ESTO!!*******
There is no place like 127.0.0.1
Conecto luego existo, no conecto luego insisto.
nagitarami
Nuevo Miembro
Mensajes: 19
Nacionalidad:
Re: creando una shell
«
Respuesta #6 en:
Domingo 11 de Abril de 2010, 02:03 »
0
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...
nagitarami
Nuevo Miembro
Mensajes: 19
Nacionalidad:
Re: creando una shell
«
Respuesta #7 en:
Lunes 12 de Abril de 2010, 20:28 »
0
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?
nagitarami
Nuevo Miembro
Mensajes: 19
Nacionalidad:
Re: creando una shell
«
Respuesta #8 en:
Lunes 12 de Abril de 2010, 23:41 »
0
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?
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
creando una shell