Un miradita

Imagen de REYMAX

Forums: 

Hola amigos como estan, tengo un pequeño problemita con el siguiente codigo en c:


#include
#include
#include
#include

void perror_modificada(const char *mensaje, int errnum);

int main(void)
{
FILE *pfile;
if((pfile = fopen("foobar"), "r")) == NULL)
{
perror_modificada("fopen", errno);
exit(EXIT_FAILURE);
}
else{
fprintf(stdout, "¿Asi que este archivo existia?\n");
fclose(pfile);
}
exit(EXIT_SUCCESS);
}
void perror_modificada(const char *mensaje, int errnum)
{
fprintf(stderr; "%s: %s\n", mensaje, strerror(errnum));

}

y sale el siguiente error

[root@localhost ~]# gcc ejercicio01.c -o ejercicio01
ejercicio01.c: In function ‘main’:
ejercicio01.c:12: error: muy pocos argumentos para la función ‘fopen’
ejercicio01.c:12: error: expected expression before ‘==’ token
ejercicio01.c:12: error: expected statement before ‘)’ token
ejercicio01.c:17: error: expected expression before ‘else’
ejercicio01.c: In function ‘perror_modificada’:
ejercicio01.c:25: error: expected ‘)’ before ‘;’ token
ejercicio01.c:25: error: muy pocos argumentos para la función ‘fprintf’
[root@localhost ~]#

Estoy tratando de hacer un pequeño shell para poder ejecutar comandos y nada... ojala puedan indicarme en donde tengo que hacer correciones

Revisa los errores...

Imagen de ch_linux

Revisa los errores.. te dicen claramente q sucede..

1er. Error.

if((pfile = fopen("foobar"), "r")) == NULL)

ese parentesis ) no debe ir ahi.. luego del "foobar"

2do. Error

fprintf(stderr; "%s: %s\n", mensaje, strerror(errnum));

luego de stderr .. .no debe ir ; (punto y coma) ... sino , (coma) ....

Y listo.. eso es todo .. ahi ya compila..

Saludos.
C@rlos H.

Saludos.
C@rlos H.