elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema al compilar en GCC (bajo Linux)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema al compilar en GCC (bajo Linux)  (Leído 7,216 veces)
RakNae

Desconectado Desconectado

Mensajes: 46



Ver Perfil WWW
Problema al compilar en GCC (bajo Linux)
« en: 3 Julio 2010, 17:42 pm »

Hola, estaba intentando compilar este programa pero me da errores con esta instrucción: stdprn

Os pongo el código y ya comentáis. Un saludo y muchas gracias ;)

Código:
/* PRINT_IT.C - Este programa imprime un listado con números de línea */

#include <stdio.h>

void do_heading(char *filename);

int line, page;

main( int argv, char *argc[] )
{
char buffer[256];
FILE *fp;

if ( argv < 2)
{
fprintf(stderr, "\nProper Usage is: " );
fprintf(stderr, "\n\nPRINT_IT filename.ext\n" );
exit(1);
}

if (( fp = fopen( argc[1], "r" )) == NULL )
{
fprintf( stderr, "Error opening file, %s!", argc[1]);
exit(1);
}

page = 0;
line = 1;
do_heading( argc[1]);

while( fgets( buffer, 256, fp ) != NULL )
{
if( line % 55 == 0 )
do_heading( argc[1] );

fprintf( stdprn, "%4d:\t%s", line++, buffer );
}

fprintf( stdprn, "\f" );
fclose(fp);
return 0;
}

void do_heading( char *filename )
{
page++;

if ( page > 1)
fprintf( stdprn, "\f" );

fprintf( stdprn, "Page: %d, %s\n\n", page, filename );
}


En línea

Informático.
@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
Re: Problema al compilar en GCC (bajo Linux)
« Respuesta #1 en: 3 Julio 2010, 17:50 pm »

Lo 1º mal que he visto, es un main sin declaración de tipo.

Código
  1. int main


En línea

RakNae

Desconectado Desconectado

Mensajes: 46



Ver Perfil WWW
Re: Problema al compilar en GCC (bajo Linux)
« Respuesta #2 en: 3 Julio 2010, 18:03 pm »

Gracias, pero eso no me resuelve el problema. Esto lo he visto en un libro, se supone que es correcto y el compilador no lo detecta como problema (en mi caso GCC). Saludos ;)
En línea

Informático.
@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
Re: Problema al compilar en GCC (bajo Linux)
« Respuesta #3 en: 3 Julio 2010, 18:08 pm »

Pues menudo libro  :-\ el sistema espera que le metas el tipo a int. Es mas, compilo tu code con gcc y...

Citar
2.c:11: warning: return type defaults to ‘int’
2.c: In function ‘main’:

También veo que usas exit() y no has definido su cabecera....

Al compilar poner -Wall? Eso te muestra todos los warnings y errores. Compila tu código y verás.
En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: Problema al compilar en GCC (bajo Linux)
« Respuesta #4 en: 3 Julio 2010, 18:11 pm »

A ver, el problema he entendido es que no te va stdprn. ¿Errores de compilación? ¿Warnings? ¿O simplemente no te imprime? Prueba haciendo esto y me dices que tal:

Código
  1. FILE *stdprn;
  2. stdprn = fopen("PRN", "wb");
  3. fprintf(stdprn, "Test\f");
  4. fclose(stdprn);

Saludos :P

EDITO: y si no, lée este enlace:

Código:
http://forums.devshed.com/showthread.php?p=251332
« Última modificación: 26 Agosto 2010, 01:03 am por Horricreu » En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: Problema al compilar en GCC (bajo Linux)
« Respuesta #5 en: 3 Julio 2010, 18:14 pm »

RakNae, el problema es que stdprn no esta en la libreria stdio.h ya que no forma parte del estandar ANSI C.

Otra cosa que te recomiendo, es no usar variables globales.

Para utilizar la funcion exit() tenes que incluir la libreria stdlib.h

Salu10.
« Última modificación: 3 Julio 2010, 18:20 pm por nicolas_cof » En línea

RakNae

Desconectado Desconectado

Mensajes: 46



Ver Perfil WWW
Re: Problema al compilar en GCC (bajo Linux)
« Respuesta #6 en: 3 Julio 2010, 18:32 pm »

Muchas gracias por sus respuestas. Si que hay que poner int main()
Muchas gracias y aquí pongo el código que sí que funciona:
Código:
/* PRINT_IT.C - Este programa imprime un listado con números de línea */

#include <stdio.h>
#include <stdlib.h>

void do_heading(char *filename);

int line, page;

int main( int argv, char *argc[] )
{
char buffer[256];
FILE *fp;

if ( argv < 2)
{
fprintf(stderr, "\nProper Usage is: " );
fprintf(stderr, "\n\nPRINT_IT filename.ext\n" );
exit(1);
}

if (( fp = fopen( argc[1], "r" )) == NULL )
{
fprintf( stderr, "Error opening file, %s!", argc[1]);
exit(1);
}

page = 0;
line = 1;
do_heading( argc[1]);

while( fgets( buffer, 256, fp ) != NULL )
{
FILE *stdprn;
stdprn = fopen("PRN","wb");
if( line % 55 == 0 )
do_heading( argc[1] );
fprintf( stdprn, "%4d:\t%s", line++, buffer );
}

FILE *stdprn;
stdprn = fopen("PRN","wb");
fprintf( stdprn, "\f" );
fclose(fp);
return 0;
}

void do_heading( char *filename )
{
page++;

FILE *stdprn;
stdprn = fopen("PRN","wb");
if ( page > 1)
fprintf( stdprn, "\f" );

fprintf( stdprn, "Page: %d, %s\n\n", page, filename );
}

Si me podéis decir para que sirve este programa os lo agradecería. Muchas gracias ;)
En línea

Informático.
nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: Problema al compilar en GCC (bajo Linux)
« Respuesta #7 en: 3 Julio 2010, 18:36 pm »

Muchas gracias y aquí pongo el código que sí que funciona:

Si me podéis decir para que sirve este programa os lo agradecería. Muchas gracias ;)

Mmmmmmmm no te entiendo, acabas de decir que funciona y no sabes para que sirve :P

O decir que " funciona " queres decir que no tuviste errores/warnings al compilar :huh:

Salu10.
En línea

RakNae

Desconectado Desconectado

Mensajes: 46



Ver Perfil WWW
Re: Problema al compilar en GCC (bajo Linux)
« Respuesta #8 en: 3 Julio 2010, 18:40 pm »

Pues en teoría hace esto: Este programa imprime un listado con números de línea

Pero namás que despliega un mensaje.  :huh:
En línea

Informático.
nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: Problema al compilar en GCC (bajo Linux)
« Respuesta #9 en: 3 Julio 2010, 18:47 pm »

Aca te dejo un link que te puede interesar...

http://gcc.gnu.org/ml/gcc-help/2002-10/msg00275.html

Salu10.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[TUTORIAL]Compilar la librería Qt estáticamente bajo Windows. « 1 2 3 »
Programación C/C++
avesudra 20 18,209 Último mensaje 20 Agosto 2016, 01:06 am
por avesudra
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines