Пример #1
0
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;
}
Пример #2
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;
}
Пример #3
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");

    }
}