[cs631apue] non-homework: welcome.c
sshah83
sshah83 at stevens.edu
Sun Sep 14 08:59:01 EDT 2014
After compiling welcome.c program, it gives below result:
welcome.c:5:2: warning: format '%s' expects argument of type 'char *',
but argument 2 has type 'int' [-Wformat]
welcome.c:6:1: error: expected ';' before '}' token
the error message is syntax error - it points to missing semicolon at
line 6.
The second warning is about int being used as char* which implies wrong
type returned by getlogin() function.
If I turn on all warnings using below command :
gcc -Wall welcome.c -o welcome.out
I see the exact warning leading to the implicit function declaration
welcome.c:5:2: warning: implicit declaration of function 'getlogin'
[-Wimplicit-function-declaration]
This warning means function prototype for getlogin() is missing and the
"implicit function declaration" rule in C language means that a default
declaration that returns int is created implicitly
(http://stackoverflow.com/questions/9182763/implicit-function-declarations-in-c).
The fix would be to include the correct header file which has the right
function prototype
#include <unistd.h>
On 09/12/2014 9:47 PM, Jan Schaumann wrote:
> Hello,
>
> Remember the welcome.c program you tried to run in our first class? If
> you didn't get it to run (and run as expected), revisiting that would
> be
> a good exercise. Can you explain why/how it fails, and what the
> compiler error or warning messages mean? How did you resolve the
> problem?
>
> -Jan
> _______________________________________________
> cs631apue mailing list
> cs631apue at lists.stevens.edu
> https://lists.stevens.edu/mailman/listinfo/cs631apue
More information about the cs631apue
mailing list