Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

Debian GNU/Linux Reference Guide
Prev Home Next

13.7.1 Programa sencillo en C (gcc)

Un simple ejemplo example.c para compilar con la biblioteca libm y obtener el ejecutable run_example:

     $ cat > exemple.c << EOF 
     #include <stdio.h>
     #include <math.h>
     #include <string.h>
     
     int main(int argc, char **argv, char **envp){
         double x;
         char y[11];
         x=sqrt(argc+7.5);
         strncpy(y, argv[0], 10); /* evita el desbordamiento del b�fer */
         y[10] = '\0'; /* para asegurar que la cadena termine con un '\0' */
         printf("%5i, %5.3f, %10s, %10s\n", argc, x, y, argv[1]);
         return 0;
     }
     EOF
     $ gcc -Wall -g -o run_example example.c -lm
     $ ./run_example
         1, 2.915, ./run_exam,     (null)
     $ ./run_example, 1234567890qwerty
         2, 3.082, ./run_exam, 1234567890qwerty

Aqu�, -lm se necesita para enlazar la biblioteca libm y poder as� usar sqrt(). La biblioteca actual se encuentra en el directorio /lib con el nombre libm.so.6 que es un enlace l�gico a libm-2.1.3.so.

Observe el �ltimo par�metro del texto de salida. Existen m�s de 10 caracteres a pesar de haber especificado %10s.

El uso de funciones que efectuan operaciones con punteros sin verificar sus lim�tes, tales como sprintf y strcpy, es censurado pues no evita las vulnerabilidades que surgen por desbordamiento de b�fer. Utilice, en cambio, snprintf y strncpy.


Debian GNU/Linux Reference Guide
Prev Home Next

 
 
  Published under the terms of the GNU General Public License Design by Interspire