Programa C para crear enlace duro y enlace suave

Hay dos tipos de enlaces, es decir, un enlace suave y un enlace duro a un archivo. La biblioteca C tiene una función link() que crea un nuevo enlace fijo a un archivo existente. La función symlink() para crear un enlace suave. Si el archivo/la ruta del enlace ya existe, no se sobrescribirá. Tanto la función link() como symlink() devuelven 0 en caso de éxito. Si se produce algún error, se devuelve -1 . De lo contrario, ‘errno’ (Número de error) se establece correctamente.

Enlace suave: un enlace suave (también conocido como enlace simbólico) actúa como un puntero o una referencia al nombre del archivo. No accede a los datos disponibles en el archivo original. Si se elimina el archivo anterior, el enlace suave apuntará a un archivo que ya no existe.

Vínculo físico: un vínculo físico actúa como una copia (reflejada) del archivo seleccionado. Accede a los datos disponibles en el archivo original.
Si se elimina el archivo seleccionado anteriormente, el enlace fijo al archivo seguirá conteniendo los datos de ese archivo.

Función para crear un Hard Link:

L = enlace (ARCHIVO1, ARCHIVO2), crea un enlace fijo llamado ARCHIVO2 a un ARCHIVO1 existente.

donde, L es el valor devuelto por la función link().

Función para crear un Soft Link:

sL = enlace simbólico (ARCHIVO1, ARCHIVO2), crea un enlace suave llamado ARCHIVO2 a un ARCHIVO1 existente.

donde, sL es el valor devuelto por la función symlink()

Programa 1: a continuación se muestra el programa en C para crear un enlace fijo a un archivo existente:

C

// C program to create an Hard Link
// to the existing file
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
  
// Driver Code
int main(int argc, char* argv[])
{
    // Link function
    int l = link(argv[1], argv[2]);
  
    // argv[1] is existing file name
    // argv[2] is link file name
    if (l == 0) {
        printf("Hard Link created"
               " succuessfuly");
    }
  
    return 0;
}

Producción:

Programa 2: a continuación se muestra el programa C para crear un enlace suave a un archivo existente:

C

// C program to create an Soft Link
// to the existing file
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
  
// Driver Code
int main(int argc, char* argv[])
{
    // Symlink function
    int sl = symlink(argv[1], argv[2]);
  
    // argv[1] is existing file name
    // argv[2] is soft link file name
    if (sl == 0) {
        printf("Soft Link created"
               " succuessfuly");
    }
  
    return 0;
}

Producción:

Publicación traducida automáticamente

Artículo escrito por dsahir511 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *