Herramientas de usuario

Herramientas del sitio


unix-es

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
unix-es [2013/11/05 13:07] – [Características de un archivo] lmateuunix-es [2016/11/15 13:15] (actual) – [Características de un archivo] lmateu
Línea 31: Línea 31:
   char *buf;   char *buf;
   int fd;   int fd;
-  ssize_t nbytesleidos, escritos;+  size_t nbytes
 +  ssize_t leidos, escritos;
   leidos = read(fd, buf, nbytes);   leidos = read(fd, buf, nbytes);
      
Línea 172: Línea 173:
   /* Uso: micp from to */   /* Uso: micp from to */
   #include <stdio.h>   #include <stdio.h>
-  #include <stdlib.h> +  #include <sys/types.h> 
-  #include <stdarg.h>+  #include <sys/stat.h>
   #include <fcntl.h>   #include <fcntl.h>
 +  #include <stdlib.h>
   #include <unistd.h>   #include <unistd.h>
 +  #include <errno.h>
      
-  void error(char *fmt, ...) { +  #define SIZE 8192
-    va_list args; +
-   +
-    va_start(args, fmt); +
-    fprintf(stderr, "Error: "); +
-    vfprintf(stderr, fmt, args); +
-    fprintf(stderr, "\n"); +
-    va_end(args); +
-   +
-    exit(1); +
-  }+
      
   int main(int argc, char *argv[]) {   int main(int argc, char *argv[]) {
-    int f1f2+    int inout;
     ssize_t n;     ssize_t n;
-    char buf[BUFSIZ]; +    char buf[SIZE]; 
-   +     
-    if (argc!=3) +    if (argc!=3) { 
-      error("Use: my_cp from to"); +      fprintf(stderr, "Use: %s <from> <to>\n", argv[0]); 
-   +      exit(1); 
-    if ((f1= open(argv[1], O_RDONLY))==-1) +    } 
-      error("Can't open %s", argv[1]); +     
-   +    if ((in= open(argv[1], O_RDONLY))==-1) { 
-    if ((f2= creat(argv[2], 0666))==-1) +      perror(argv[1]); 
-      error("Can't open %s", argv[2]); +      exit(2); 
-  +    } 
 +     
 +    if ((out= creat(argv[2], 0666))==-1) { 
 +      perror(argv[2]); 
 +      exit(3); 
 +    } 
 +    
     /* usando stats se pueden mantener los permisos */     /* usando stats se pueden mantener los permisos */
-   +     
-    while ((n= read(f1, buf, BUFSIZ))>0) +    while ((n= read(in, buf, SIZE))>0) { 
-      if(write(f2, buf, n)!=n) +      if (write(out, buf, n)!=n) { 
-        error("Write error on file %s", argv[2]); +        perror(argv[2]); 
-  +        exit(4); 
 +      } 
 +    } 
 +     
 +    if (n<0) { 
 +      perror(argv[1]); 
 +      exit(5); 
 +    } 
 +     
 +    close(in); 
 +    close(out); 
 +    
     return 0;     return 0;
   }   }
- 
 ==== Cambiar los permisos de un archivo ==== ==== Cambiar los permisos de un archivo ====
  
Línea 228: Línea 237:
   char *path;   char *path;
   unlink(path);   unlink(path);
 +
 +==== Cambiar el nombre de un archivo ====
 +
 +Se usa la funcion //rename//:
 +
 +  #include <stdio.h>
 +  char *oldpath, *newpath;
 +  rename(newpath, oldpath);
  
 ==== Crear un link duro ==== ==== Crear un link duro ====
Línea 343: Línea 360:
   st_size             tamaño del archivo en bytes   st_size             tamaño del archivo en bytes
   st_atime            dia y hora del último acceso   st_atime            dia y hora del último acceso
-  st_ctime            día y hora del último cambio (p.ej. perms)+  st_ctime            día y hora de creación
   st_mtime            día y hora de la última modificación   st_mtime            día y hora de la última modificación
  
unix-es.1383656852.txt.gz · Última modificación: 2013/11/05 13:07 por lmateu