error: expected declaration specifiers or '...' before syslog


 
Thread Tools Search this Thread
Top Forums Programming error: expected declaration specifiers or '...' before syslog
# 1  
Old 11-09-2010
Error error: expected declaration specifiers or '...' before syslog

When I compile this i get the following error

Code:
"error: expected declaration specifiers or '...' before syslog"

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#define __LIBRARY__ 

#include <linux/unistd.h>

/* define the system call, to override the library function */
_syscall3(int, syslog, int, type, char *, bufp, int, len);

int main(int argc, char **argv)
{
    int level;

    if (argc==2) {
	level = atoi(argv[1]); /* the chosen console */
    } else {
        fprintf(stderr, "%s: need a single arg\n",argv[0]); exit(1);
    }
    if (syslog(8,NULL,level) < 0) {  
        fprintf(stderr,"%s: syslog(setlevel): %s\n",
                argv[0],strerror(errno));
        exit(1);
    }
    exit(0);
}


Last edited by Scott; 11-09-2010 at 01:37 PM.. Reason: Code tags, please...
# 2  
Old 11-09-2010
You're using the wrong syslog, the kernel one instead of the libc one. The man page tells you to see man 3 syslog.
# 3  
Old 11-09-2010
Will the below code do the same thing because this one compiles without problems

Code:
int syslog(int type, char *bufp, int len)
{
    return syscall(__NR_syslog, type, &bufp,len);
};


Last edited by Scott; 11-09-2010 at 01:38 PM.. Reason: Code tags
# 4  
Old 11-09-2010
seems that you're writing user space program (if I refer to your include), so syslog() from the glibc would be probably "better".
man 3 syslog

Just my 2c,
Loïc
# 5  
Old 11-09-2010
You're writing a userspace program. Do you have a really good reason to be constructing your own system calls instead of using the ones glibc has already provided for this purpose?
# 6  
Old 11-09-2010
I was trying to define a custom system call only as an experiment....
# 7  
Old 11-09-2010
I see! In which case you might find man 2 syscall a better way to do arbitrary syscalls. I've certainly never managed to get _syscall3 and the like to work...
These 2 Users Gave Thanks to Corona688 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Printf conversion specifiers

Hello, this is one examples that I always panic with C printf format specifier. 1) I did read the manpage with man 3 printf ...... One can also specify explicitly which argument is taken, at each place where an argument is required, by writing "%m$" instead of '%' and "*m$"... (10 Replies)
Discussion started by: yifangt
10 Replies

2. Shell Programming and Scripting

ERROR: `(' is not expected.

Hi All, I have written a shell script which works all right on bash shell, but when it comes to execute it using ksh on AIX it gives the following error::( bash$ /bin/ksh getShortInfo.sh getShortInfo.sh: syntax error at line 26 : `(' unexpected Could you please indicate what is... (4 Replies)
Discussion started by: Elvis
4 Replies

3. Programming

Please Help ! ----> error: expected ‘=’,

#include<stdio.h> int main{ char *fl; fl=(char*)malloc(150); strcat(fl,"/tmp/OV/"); printf("\nInside fl--->%s\n",fl); return 0; } I wrote a simple program as above. I got the error error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token Please help me out ! I am... (4 Replies)
Discussion started by: gameboy87
4 Replies

4. Shell Programming and Scripting

fi not expected error

I'm trying this script and I keep getting a 'fi' not expected error: #!/bin/sh #TD=0 CT=0 cat P7748 |while read LINE do # Check to see if the LINE is non-empty, and has a <td> tag in it. if # Increase the TD counter by 1 CT=`echo "$CT+1" |bc` ... (2 Replies)
Discussion started by: dba_frog
2 Replies

5. Shell Programming and Scripting

Receiving error: ./ang.ksh[35]: 0403-057 Syntax error at line 116 : `done' is not expected.

Hi All I am quite new to Unix. Following is a shell script that i have written and getting the subject mentioned error. #!/bin/ksh #------------------------------------------------------------------------- # File: ang_stdnld.ksh # # Desc: UNIX shell script to extract Store information.... (3 Replies)
Discussion started by: amitsinha
3 Replies

6. Shell Programming and Scripting

ERROR: ./launch_full_backup.sh[18]: Syntax error at line 28 : `else' is not expected.

Help please! :confused: I have the following error with the following file and the emails are not arriving to the email, any idea please? ERROR: ./launch_full_backup.sh: Syntax error at line 28 : `else' is not expected. FECHA=`date +%d%m%y%H%M`... (2 Replies)
Discussion started by: villenan
2 Replies

7. Programming

c++ compile error: expected `)' before ‘strCommand’

I'm trying to learn c++ and make it compile a script to run some bash commands (cat, ls, open xterm) and can't get past the first part of the script I've borrowed to study: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> int... (2 Replies)
Discussion started by: unclecameron
2 Replies

8. Shell Programming and Scripting

ERROR-> test: argument expected , what does it mean?

I am trying to compare two integer variables in the if statement, but i am getting this "test:argument expected". What am i missing? Why is the if loop not executing correctly? trunkPCM="100000"; more $FILE |while read line do PCM=`echo $line | awk '{ print $2 }'` ... (4 Replies)
Discussion started by: tan102938
4 Replies

9. Shell Programming and Scripting

arguments expected error

ive implemented getopt for the command line but have this problem, #!/bin/sh text="" set -- getopt "t" etc .... #sets arguments while : do case "$1" in #gets arguments -t: shift; text="$1" ;; shift done shift if then echo "no text" else echo... (4 Replies)
Discussion started by: strike
4 Replies

10. Programming

Error : ANSI C++ forbids 'xx' declaration with no type

Hi All, I am not sure if this is the correct place to put this question but still i hope to get some info. I am compiling a c++ program on solaris 8 using c++ command, i get an error stating "ANSI C++ forbids declaration `genericerror' with no type" What could be the problem.... (2 Replies)
Discussion started by: zing
2 Replies
Login or Register to Ask a Question