Código de C/Visual C - FICHEROS-COMPORTAMIENTO

Imágen de perfil

FICHEROS-COMPORTAMIENTOgráfica de visualizaciones


C/Visual C

Actualizado el 26 de Agosto del 2022 por Hilario (124 códigos) (Publicado el 22 de Agosto del 2022)
401 visualizaciones desde el 22 de Agosto del 2022
-----------------------------------
*

*Non scholae, sed vitae discere.**



-----------------------------------
Hilario Iglesia Martínez.
Práctica en lenguaje C.
---------------------------
Utilización y creación de Ficheros.
--------------------------------
El programa fue realizado en plataforma
LINUX Ubuntu 20.04.4 LTS.
Bajo el standard ANSI C.-C-11
Para ejecutar bajo consola de linux.
-------------------------------------
Otra forma de ejecución:
Si no se desea utilizar "make" para su ejecución,
y hacerlo bajo directorio en consola Linux.
Deberá estar bajo dicho directorio los ficheros: Variables.h
y main.c.
Se podrá ejecutar su compilación, según las exigencias de
depuración de la siguiente forma:
-----------------------------------------------
gcc main.c -Wall -Wextra -Werror -Wno-format -o Descriptor_Archivo
-----------------------------------------------------------
gcc -Wall main.c -o Descriptor_Archivo
-----------------------------------------
gcc main.c -o Descriptor_Archivo

***********************************************

**Descriptor_Archivo, es un programa realizado en ANSI-C, bajo LINUX,
que trata de aclarar un poco el funcionamiento de la apertura de un
pequeño fichero de texto, en el que se escribe una frase.**

**Se intenta buscar la dirección del descriptor de archivo, así como el
alojamiento de cada letra de la frase en memoria. También se hace un volcado
de la parte del alojamiento en memoria para intentar apreciar los
desplazamientos de cada letra. Al final del mismo se hace una llamada
mediante la función “system()”, para saber el PID (Identificador de proceso),
del mismo. En esta llamada podremos comprobar coincidencias en las
direcciones de memoria.**

**Al final, averiguamos con otra llamada mediante “system()”,
el inode, y la estructura de datos con la información del archivo.**

Requerimientos

El programa fue realizado en plataforma
LINUX Ubuntu 20.04.4 LTS.
Bajo el standard ANSI C.-C-11
Para ejecutar bajo consola de linux.

V-0

Publicado el 22 de Agosto del 2022gráfica de visualizaciones de la versión: V-0
402 visualizaciones desde el 22 de Agosto del 2022
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
//**********************************
/*
Variables.h
*/
 
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
int  salida;    /* Salida del comando */
char comando[60];   /* Comando a ejecutar */
int  salida1;    /* Salida del comando */
char comando1[60];   /* Comando a ejecutar */
char Codigo_ascii[17];
int i;
 
 
 
//*************************************************
/*
main.c
*/
 
#include "Variables.h"
int main() {
 
        FILE * Descriptor_Archivo;
 
 
        printf("--------------------------------------\n");
        printf("Dirección Inicio Buffer: [%p] \n",&Descriptor_Archivo );
        printf("--------------------------------------\n");
        printf("\n");
        char Almaceno[] = "HOMO HOMINI LUPUS $";
        Descriptor_Archivo = fopen("MiFichero.txt", "w"); // "w" defines "writing mode"
//********************************************************
 
    for (i = 0; Almaceno[i] != '$'; i++) {
            /* write to file using fputc() function */
            fputc(Almaceno[i], Descriptor_Archivo);
            printf("Direccion [%p] caracter[%c] \n",&Almaceno[i],Almaceno[i] );
 
             /*
             include <stdio.h>
             La función de biblioteca C int "fputc(int char, FILE *stream)",
             escribe un carácter (un carácter sin signo) especificado por
             el argumento char en la secuencia especificada y avanza el
             indicador de posición de la secuencia.
             */
 
}
 
printf("\n");
for (i = 0; i < 123; ++i) {
        printf("%02X ", ((unsigned char*)Descriptor_Archivo)[i]);
        if (((unsigned char*)&Descriptor_Archivo)[i] >= ' ' && ((unsigned char*)&Descriptor_Archivo)[i] <= '~')
         {
            Codigo_ascii[i % 16] = ((unsigned char*)&Descriptor_Archivo)[i];
        } else {
            Codigo_ascii[i % 16] = '.';
        }
        if ((i+1) % 8 == 0 || i+1==123) {
            printf(" ");
            if ((i+1) % 16 == 0) {
                printf(" |  %s \n", Codigo_ascii);
 }
            }
            }
            fclose(Descriptor_Archivo);
            printf("\n");
 
 
//***************************************************
printf("\n");
 
long int pid;
pid=getpid();
/*
getpid() devuelve el ID de proceso (PID) del proceso de llamada.
*/
 
 
printf("\n");
printf( " PID asignado por el kernel:%ld\n",pid);
 
printf ("Llamada (pmap  -d) a system.\n");
sprintf (comando, "pmap  -d %ld", pid);
salida = system (comando);
printf("---------------------------------------------\n");
printf("Bloque de Intercambio e Inode del ejecutable.\n");
printf("---------------------------------------------\n");
printf ("Llamada (pmap  -d) a system.\n");
sprintf (comando1, "stat ./Descriptor_Archivo");
salida1 = system (comando1);
 
/*
#include <stdlib.h>
La función de biblioteca C "int system(const char *command)",
pasa el nombre del comando, o el nombre del programa especificado
por el comando al entorno host, para que lo ejecute el procesador
de comandos y regresa después de que se haya completado el comando.
*/
 
        return 0;
 
}



Comentarios sobre la versión: V-0 (0)


No hay comentarios
 

Comentar la versión: V-0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7268