Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/08/2003, 13:48
vfgt
 
Fecha de Ingreso: febrero-2003
Mensajes: 11
Antigüedad: 21 años, 10 meses
Puntos: 0
Tail no es una llamada al sistema

Bueno, yo se hacer llamadas al sistema de Linux, pero tail es un comando de Linux que muestra el final de un archivo.

$ tail -n 3 archivo

Muestra las tres ultimas lineas de un archivo.

He mirado en el archivo "unistd.h" donde estan las 190 llamadas al sistema de Linux y tail no aparece.

Pero bueno, yo te pongo un ejemplo de llamada al systema linux en C.

Es igual que cualquier otra funcion:

/* Llamada a stat */
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>

int main(void){

struct stat s;
if( stat("/archivo", &s) ){
/* hacer algo con s */

}else{
printf("No funciono stat\n");
}
}

Las llamadas al sistema siempre devuelven 1 cuando tienen exito y un valor negativo si no.

Puedes ver el numero de error , en el valor de la variable errno.

#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <errno.h>

extern int errno;

int main(void){
struct stat s;
if( stat("/archivo", &s) ){
/* hacer algo con s */
if( S_ISDIR(s) ) printf("/archivo es un directorio");
}else{
printf("No funciono stat\n");
if (errno == EPERM ) printf("No tienes permisos");
}
}

Por lo demas las llamadas al sistema de Linux son exactamente iguales a cualquier otra funcion en C:

Última edición por vfgt; 18/08/2003 a las 14:01