syntax error near unexpected token -what does this mean?
Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
syntax error near unexpected token -what does this mean?
Hi all,
I tried running the simplest c-programme(filename is firstc.c)
as follows
#include<stdio.h>
main()
{ printf("abcd");
}
and I compiled it using command gcc -o firstc firstc.c,it gets compiled and when i run it i get the following error,i don't understand,how could a simple programme such as this be erraneous,someone help sort this out.
The Error Message is:
./firstc.c: line 5: syntax error near unexpected token `"abcd"'
./firstc.c: line 5: `{ printf("abcd");'
Such a simple code cannot have errors! You are trying to execute the source code, not the executable. The error message is a typical error of the SHELL not of the C programming language. You have to do
Due to the syntax rules of BASH your program is interpreted in the following way:
Code:
#include<stdio.h> <----- This is a comment in bash
main() <----- This is a function definition
{ printf("abcd"); <----- This is the printf command with erroneous syntax
since you cannot put parentheses
}
The shell expected something after printf, but found a parenthesis followed by "abcd"... that is an unexpected token.
If you read the answer from colucix, you will see that he has explained that when you tried to execute a C source file with BASH, it was unable to accept the syntax. That is because C source files are not intended to be interpreted by BASH, but by a C compiler. The C compiler converts the source code into binary object code which BASH loads and passes execution to. When you compile the source code, the C compiler accepts the syntax without complaint because it is valid C code.
--- rod.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.