int32_t rfs_mkdir(int32_t sock, NIPC paqueteEnviar, char *path, int32_t modo) { extern t_log *loguear; usleep(retardo); int32_t i = crearDirectorio(path, modo); crearNIPC(11, 0, i, 0, NULL, &paqueteEnviar, 0); char* nombreDeArchivo = dameElNombre(path); log_debug(loguear, "Nombre De Archivo:%s- Operacion mkdir", nombreDeArchivo); enviarNIPC(sock, paqueteEnviar); chauNIPC(&paqueteEnviar); return 0; }
int main(int argc, const char * argv[]) { sigset_t conjunto, pendientes; sigfillset(&conjunto); sigdelset(&conjunto, SIGALRM); sigprocmask(SIG_BLOCK, &conjunto, NULL); signal(SIGALRM, temporizador); crearDirectorio(); int i, fd, len = ((N-1) / 10) + 9; char* buffer = (char*) malloc(len * sizeof(char)); struct stat st; for (i = 0; i < N; ++i) { grabar = 1; snprintf(buffer, len, "datos/a%d", i); // Nombre del archivo fd = open(buffer, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); // Escribir en el archivo alarm(T); while (grabar) write(fd, "x", sizeof(char)); // Imprimir señales bloqueadas int sig_count, size; char buffer[10]; sigpending(&pendientes); for (sig_count = 1; sig_count < NSIG; ++sig_count) { if (sigismember(&pendientes, sig_count)) { size = sprintf(buffer, "%d\n", sig_count); write(fd, buffer, size); } } // Imprimir tamaño fstat(fd, &st); printf("a%d %d\n", i, (int)st.st_size); close(fd); } free(buffer); return 0; }
void crearDisco(parametros *listaParametros) {//crea un disco nuevo if(verificarExistenciaDeArchivo(listaParametros->path) == 0) { size_t tamReal = listaParametros->size + sizeof(MBR); crearDirectorio(listaParametros->path); FILE *file = fopen(listaParametros->path,"wb"); if(file != NULL) { ftruncate(fileno(file), tamReal); MBR *mbr = malloc(sizeof(MBR));//asigna memoria a la estructura MBR crearMBR(mbr,tamReal);//Inializa los datos internos de la estructura MBR fwrite(mbr, sizeof(MBR), 1, file); mbr=NULL; free(mbr);//libera la estructura del MBR de la memoria fclose(file); printf("Disco nuevo creado.\n"); printf("El tamaño del disco es de: %u bytes.\n",listaParametros->size); printf("Creado en: %s\n",listaParametros->path); } } else { printf("Error. Disco ya existe.\n"); } }