int main(int argc, char **argv){ int pipeflag = 0; char filename[200]; if(argc<3) { pipeflag = 1; } if(argc<2) { printf("mygrep takes atleast 2 arguments\n"); return 1; } int argvpos = handleoptions(argc, argv); //printf("optind : %d %s\n", argvpos, argv[optind]); if(argvpos) { //if(invflag) printf("Invert flag set\n"); //if(maxcount>0) printf("Max flag set\n"); } if(!pipeflag) strcpy(filename, argv[optind+1]); else strcpy(filename, "stdin"); processfile((const char*)argv[optind], filename, pipeflag); if(argvpos == 0) perror("mygrep"); return 0; }
int main(int argc, char *argv[]) { #ifndef JNI_SUPPORT signal(SIGINT,handlesignal); signal(SIGTERM,handlesignal); #endif int loglevel=LogFile::LOGLEVEL_DEBUG; Option option; global::db.Open(global::basepath+"flip.db3"); global::daemon=false; global::shutdown=false; bool startup=true; SetupDB(&global::db); SetupDefaultOptions(&global::db); creatersakeypairs(&global::db); if(argc>1) { std::vector<std::string> options; for(int i=1; i<argc; i++) { if(argv[i]) { options.push_back(std::string(argv[i])); } } handleoptions(options,startup); } IRCServer irc; FreenetConnection fn; global::log.SetFileName(global::basepath+"flip.log"); global::log.OpenFile(); global::log.Rotate("flip","log"); global::log.SetWriteDate(true); global::log.SetWriteLogLevel(true); global::log.SetWriteNewLine(true); option.GetInt("LogLevel",loglevel); global::log.SetLogLevel((LogFile::LogLevel)loglevel); if(startup==true) { global::log.Info("FLIP startup v"FLIP_VERSION); irc.Start(); do { irc.Update(50); fn.Update(50); }while(global::shutdown==false); irc.Shutdown(); } if(global::daemon) { Undaemonize(); } global::log.Info("FLIP shudown complete"); return 0; }
int main(int argc,char**argv) { struct sigaction sa; handleoptions(argc,argv); /*init signals*/ sa.sa_sigaction=0; sa.sa_handler=bagdsighandler; sa.sa_flags=SA_NOMASK|SA_RESTART; sigaction(SIGHUP,&sa,0); sigaction(SIGTERM,&sa,0); sigaction(SIGQUIT,&sa,0); sigaction(SIGCHLD,&sa,0); sigaction(SIGPIPE,&sa,0); sigaction(SIGINT,&sa,0); readconfig(); /*init socket*/ if(ipv6){ /*tcp6*/ struct sockaddr_in6 si; int sopt; sock=socket(PF_INET6,SOCK_STREAM,0); if(sock==-1){ log(LOG_ERR,"Unable to allocate TCPv6 socket: %s",strerror(errno)); exit(1); } if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&sopt,sizeof(sopt))==-1) log(LOG_ERR,"Unable to set reuse socket option on."); si.sin6_family=AF_INET6; si.sin6_addr=in6addr_any; si.sin6_port=htons(port); if(bind(sock,&si,sizeof(si))==-1){ log(LOG_ERR,"Unable to bind TCPv6 socket: %s",strerror(errno)); close(sock); exit(1); } }else{ /*tcp*/ struct sockaddr_in si; int sopt; sock=socket(PF_INET,SOCK_STREAM,0); if(sock==-1){ log(LOG_ERR,"Unable to allocate TCP socket: %s",strerror(errno)); exit(1); } sopt=1; if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&sopt,sizeof(sopt))==-1) log(LOG_ERR,"Unable to set reuse socket option."); si.sin_family=AF_INET; si.sin_addr.s_addr=htonl(INADDR_ANY); si.sin_port=htons(port); if(bind(sock,&si,sizeof(si))==-1){ log(LOG_ERR,"Unable to bind TCP socket: %s",strerror(errno)); close(sock); exit(1); } } if(listen(sock,5)==-1){ log(LOG_WARNING,"Unable to set TCP socket to listen mode: %s",strerror(errno)); close(sock); exit(1); } log(LOG_INFO,"Successfully initialized TCP socket. Port=%i FD=%i.",port,sock); /*go daemons go...*/ if(godaemon)daemonize(); for(;;){ int fd; fd=accept(sock,0,0); if(fd>-1)vhostchild(fd); } return 0; }