[FIXED] Expression list treated as compound exression in functional cast cast [-fpermissive] ?
-
Hello, I have a simple daemon with init method which has the following declaration:
@void init_daemon(smain, int, char**)@
where smain is the following callback to original main function
@typedef int (smain)(int, char*)@
I am using the function as follows:
@void init_daemon(smain s, int argc, char* args[]) {
int i, lfp;
char str[10];
if ( getppid() == 1) {
/already a daemon/
return;
}
i = fork();
if ( i < 0 ) exit(1); /* fork error */
if ( i > 0) exit(0) ; /*parent exit */setsid(); for (i= getdtablesize(); i >=0; --i) close(i) ; //close all descriptors i = open("/dev/null", O_RDWR); dup(i); dup(i); /* handle standard I/O ??? read further */ umask(027); chdir(getenv("PWD")); lfp=open(LOG_FILE, O_RDWR | O_CREAT, 0640); if ( lfp <0) exit(1); if ( lockf(lfp, F_TLOCK, 0) < 0) exit(0); sprintf(str, "%d\n", getpid()); write(lfp, str, strlen(str)); signal(SIGCHLD, SIG_IGN); signal(SIGTSTP, SIG_IGN); signal(SIGTTOU, SIG_IGN); signal(SIGTTIN, SIG_IGN); signal(SIGHUP, signal_handler); signal(SIGTERM, signal_handler); smain(argc, args); // --------- > s(argc, args);
}@
It gives me the error in smain(argc, args) call. The main.c file is as follows:
@#include <QApplication>
#include <iostream>
#include "Daemon.h"
#include "DirectoryDeleter.h"int selfMain(int, char*[]);
int main(int argc, char *argv[])
{
init_daemon(selfMain, argc, argv);
}int selfMain(int argc, char** argv) {
QApplication a(argc, argv); QString* s = new QString(argv[1]); std::cout << s->toStdString() << std::endl;
// DirectoryDeleter* dr = new DirectoryDeleter(s, &a);
//DirectoryDeleter dr = DirectoryDeleter::getSingleInstance();
//dr->showProgram();
DirectoryDeleter::getInstance()->setFileName("DAEMON TESTING")
->setQApplication(&a)
->setWxH(100,100)
->setSleepTime(10000)
->build();
return a.exec();
}
@Can you explain why is this error?
Sorry I`ve noticed it ... Dull too much code