unix-es
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| unix-es [2013/05/09 18:04] – [Crear un link simbólico] lmateu | unix-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 | ||
| 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 < | #include < | ||
| - | #include <stdlib.h> | + | #include <sys/types.h> |
| - | #include <stdarg.h> | + | #include <sys/stat.h> |
| #include < | #include < | ||
| + | #include < | ||
| #include < | #include < | ||
| + | #include < | ||
| | | ||
| - | | + | |
| - | va_list args; | + | |
| - | + | ||
| - | va_start(args, | + | |
| - | fprintf(stderr, | + | |
| - | vfprintf(stderr, | + | |
| - | fprintf(stderr, | + | |
| - | va_end(args); | + | |
| - | + | ||
| - | exit(1); | + | |
| - | } | + | |
| | | ||
| int main(int argc, char *argv[]) { | int main(int argc, char *argv[]) { | ||
| - | int f1, f2; | + | int in, out; |
| ssize_t n; | ssize_t n; | ||
| - | char buf[BUFSIZ]; | + | char buf[SIZE]; |
| - | + | ||
| - | if (argc!=3) | + | if (argc!=3) |
| - | | + | |
| - | + | | |
| - | if ((f1= open(argv[1], | + | } |
| - | | + | |
| - | + | if ((in= open(argv[1], | |
| - | if ((f2= creat(argv[2], | + | |
| - | | + | |
| - | + | } | |
| + | | ||
| + | if ((out= creat(argv[2], | ||
| + | | ||
| + | | ||
| + | } | ||
| + | | ||
| /* 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))> |
| - | if(write(f2, buf, n)!=n) | + | if (write(out, buf, n)!=n) |
| - | | + | |
| - | + | | |
| + | } | ||
| + | } | ||
| + | |||
| + | 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 < | ||
| + | char *oldpath, *newpath; | ||
| + | rename(newpath, | ||
| ==== Crear un link duro ==== | ==== Crear un link duro ==== | ||
| Línea 313: | Línea 330: | ||
| | | ||
| buf= getcwd(buf, size); /* guarda en buf pathname absoluto del | buf= getcwd(buf, size); /* guarda en buf pathname absoluto del | ||
| - | directorio actual, retorna NULL si error */ | + | directorio actual, retorna NULL en caso de error */ |
| + | chdir(name); | ||
| Llamadas al sistema (sección 2): | Llamadas al sistema (sección 2): | ||
| Línea 342: | Línea 360: | ||
| st_size | st_size | ||
| st_atime | st_atime | ||
| - | st_ctime | + | st_ctime |
| st_mtime | st_mtime | ||
| Línea 354: | Línea 372: | ||
| S_ISLNK | S_ISLNK | ||
| - | Los atributos se pueden | + | Esta función es usada por el comando ls -l para averiguar las características de un archivo: |
| + | |||
| + | $ ls -l index.html | ||
| + | | ||
| + | |||
| + | La mayoría de estos atributos se pueden | ||
| chmod(path, perms); | chmod(path, perms); | ||
| chown(path, owner, group); | chown(path, owner, group); | ||
| + | utime(path, ...); | ||
| - | También es posible | + | La función utime (ver manual) permite "falsificar" |
| lo usa el comando tar para restaurar la fecha y hora de creación y modificación de los archivos. | lo usa el comando tar para restaurar la fecha y hora de creación y modificación de los archivos. | ||
unix-es.1368122678.txt.gz · Última modificación: por lmateu
