Autor
|
Tema: crear archivo de configuracion swap (Leído 3,090 veces)
|
ccsponcer3
Desconectado
Mensajes: 11
|
Hola gente,estoy haciendo un tp para la facu el cual requiere emular el comportamiento de un sistema operativo. En mi caso me toco el swapeo del sistema, memoria virtual.
Lo que se me pide es crear un archivo de configuracion el cual inicialmente deberá ser rellenado con el caracter \0, a fines de inicializar la partición de swap. El tamaño de las páginas escritas en swap es configurable, así como también el nombre de este archivo.
Se nos recomienda hacer uso del comando dd de linux para la creacion del archivo
Bien. googleando bastante encontre lo siguiente:
system(" dd if=/dev/zero of=rutaDelArchivo bs=2M count=4")
if: inicializa en cero el archivo of: pasa la ruta del archivo bs: tamaño de paginas count: cantidad de paginas
el problema es que ahi yo estoy harcodeando los valores y lo que yo deberia hacer es que fuera configurable. A su vez ya nos dan un archivo de configuracion con lo siguiente: PUERTO_ESCUCHA 6000 NOMBRE_SWAP swap.data CANTIDAD_PAGINAS 512 TAMANIO_PAGINA 25613 RETARDO_COMPACTACION 60000
Osea, lo que yo tendria que hacer es una funcion que reciba el comando dd y que el mismo comando pueda recibir los respectivos NOMBRE_SWAP, CANTIDAD_PAGINAS Y TAMANIO_PAGINA del archivo de configuracion y crear asi el archivo de swap vacio que estoy necesitando.
Espero que no haya sido tan largo y me puedan tirar una mano, gracias!!!
|
|
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
A ver, se ve interezante ¿Necesitas que programa en C genere el archivo de configuracion ? ¿ Necesitas que el archivo en C lea la configuracion y posterioremnte mande a llamar a dd con los parametros necesarios para crear la swap ? Algo de codigo: FILE *conf; char *NOMBRE_SWAP = "Nombre"; char *config = calloc(1000,1); int count_page = 512; int size_page = 25613; snprintf(config ,1000,"PUERTO_ESCUCHA\t6000\nNOMBRE_SWAP\t%s\nCANTIDAD_PAGINAS\t%i\nTAMANIO_PAGINA\t%i\nRETARDO_COMPACTACION\t60000",NOMBRE_SWAP ,count_page ,size_page ); snprintf(dd ,1000,"dd if=/dev/zero of=%s bs=%i count=%i",NOMBRE_SWAP ,count_page ,size_page ); exec(dd); conf = fopen("Test","w");
Saludos!
|
|
« Última modificación: 18 Mayo 2016, 05:52 am por AlbertoBSD »
|
En línea
|
|
|
|
ccsponcer3
Desconectado
Mensajes: 11
|
Claro pero yo tengo un archivoConfigSwap.cfg en algun lado que tiene esto: PUERTO_ESCUCHA= 6000 NOMBRE_SWAP= swap.data CANTIDAD_PAGINAS= 512 TAMANIO_PAGINA=25613 RETARDO_COMPACTACION=60000
y yo en alguna funcion mia, ponele "crearParticionSwap" recibo el comando dd y dicho comando recibe para of NOMBRE_SWAP, para bs TAMANIO_PAGINA y para count CANTIDAD_PAGINA y con eso crea la particion vacia de dicho tamaño y dicho nombre
osea recibe lo que tiene cada una de esas variables del archivo .cfg lo que no entiendo es como invocarlas siendo un archivo aparte y como el comando dd lo recibe... ademas en algun lado tengo que colocar la ruta del archivo .cfg de donde voy a sacar lo anterior y no se como.
Igual tu codigo esta bien, pero no es justamente asi. Me estoy quemando el coco jaja Gracias por la ayuda!
|
|
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
Solucion fscanfCodigo: #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { FILE *conf = NULL; char *config_file = "config.txt"; char *nombre_swap = calloc(50,1); int count_page = 0; int size_page = 0; conf = fopen(config_file ,"r"); if(conf) { fgets(dd ,1000,conf ); //Saltamos la primer linea fscanf(conf ,"NOMBRE_SWAP=%s\n\r",nombre_swap ); fscanf(conf ,"CANTIDAD_PAGINAS=%d\n\r",&count_page ); fscanf(conf ,"TAMANIO_PAGINA=%d\n\r",&size_page ); snprintf(dd ,1000,"dd if=/dev/zero of=%s bs=%i count=%i",nombre_swap ,count_page ,size_page ); printf("dd command: %s\n",dd ); //exec(dd); //Ejecutar dd } else { printf("no se puede abrir el archivo de configuracion\n"); } }
Salida: C:\Users\alberto\Desktop>cfg.exe dd command: dd if=/dev/zero of=swap.data bs=512 count=25613 Solo le tienes que poner el nombre de tu archivo de configuracion y descomentar la linea del exec Saludos!
|
|
|
En línea
|
|
|
|
ccsponcer3
Desconectado
Mensajes: 11
|
Muchas gracias!!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Crear archivo reproducible de DVD a partir de archivo MPG con Canopus ProCoder
Multimedia
|
aula18
|
2
|
5,694
|
8 Septiembre 2004, 23:28 pm
por Songoku
|
|
|
crear cd dvd de arranque swap magic para ps2
« 1 2 »
Juegos y Consolas
|
redsimonred
|
15
|
39,587
|
27 Septiembre 2006, 17:37 pm
por YaTaMaS
|
|
|
Alguien save como crear archivo php igual que el archivo de texto
Windows
|
BrokerJoker
|
6
|
7,120
|
17 Mayo 2012, 02:47 am
por #!drvy
|
|
|
Crear archivo Exe con un archivo dentro de los Resources, sería posible?
.NET (C#, VB.NET, ASP)
|
z3nth10n
|
4
|
3,879
|
3 Julio 2013, 19:55 pm
por z3nth10n
|
|
|
¿Es posible modificar el archivo de "swap" en linux (ubuntu)?
GNU/Linux
|
crazykenny
|
3
|
3,435
|
4 Diciembre 2013, 21:02 pm
por crazykenny
|
|