LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > General
User Name
Password
General This forum is for non-technical general discussion which can include both Linux and non-Linux topics. Have fun!

Notices


Reply
  Search this Thread
Old 07-03-2009, 10:53 AM   #1
786
LQ Newbie
 
Registered: Jul 2008
Posts: 8

Rep: Reputation: 0
.exe file terminated issue .


Dear Linux Guru,

I am new in linux. I need help from you in easy way.

I have installed fedora 4 and run one file for fax modem status. it is also responsible to communicate with our application and get status from modem. So, its working fine on Fedora 4.

but when i want to run on Fedora 7,8,9.. it's automatically terminated after some time. you can find code below. so, please can you help me out.

--------------------Code----------------------------

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/wait.h>
#include <signal.h>
//#define MYPORT 3490 // the port users will be connecting to
#define BACKLOG 10 // how many pending connections queue will hold
void sigchld_handler(int s)
{
while(waitpid(-1, NULL, WNOHANG) > 0);
}

int main(int argc, char *argv[])
{
int sockfd, new_fd; // listen on sock_fd, new connection on new_fd
FILE *fp=NULL;
int filefd;
struct sockaddr_in my_addr; // my address information
struct sockaddr_in their_addr; // connector’s address information
socklen_t sin_size;
struct sigaction sa;
int yes=1;
int port;
int n;
char command[100];
char BUFFER[4096];
int filesize;
if(argc < 2)
{
perror("Parameters too shorts...");
exit(1);
}

if ((sockfd = socket(PF_INET, SOCK_STREAM, 0)) == -1)
{
perror("socket");
exit(1);
}
if (setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&yes,sizeof(int)) == -1)
{
perror("setsockopt");
exit(1);
}
port = atoi(argv[1]);
my_addr.sin_family = AF_INET; // host byte order
my_addr.sin_port = htons(port); // short, network byte order
my_addr.sin_addr.s_addr = INADDR_ANY; // automatically fill with my IP
//memset(&(my_addr.sin_zero), ’\0’, 8);
bzero(&(my_addr.sin_zero),8);
if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))== -1)
{
perror("bind");
exit(1);
}
if (listen(sockfd, BACKLOG) == -1) {
perror("listen");
exit(1);
}
sa.sa_handler = sigchld_handler; // reap all dead processes
sigemptyset(&sa.sa_mask);
sa.sa_flags = SA_RESTART;
if (sigaction(SIGCHLD, &sa, NULL) == -1)
{
perror("sigaction");
exit(1);
}
int i;

while(1)
{
// main accept() loop
sin_size = sizeof(struct sockaddr_in);
if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr,&sin_size)) == -1)
{
perror("accept");
continue;
}
printf("server : got connection from %s\n",inet_ntoa(their_addr.sin_addr));
printf("\n One");

if (!fork())
{ // this is the child process
close(sockfd); // child doesn’t need the listener
while(1){
for(i=0;i<100;i++)
command[i]=NULL;

if((n=recv(new_fd, command, 100, 0)) == -1)
{
perror("READ ERROR Change ");
printf("\n Two");
exit(1);
}
//printf("%d,......%s\n",n,command);
if(strcmp(command,"state")==0)
{
system("faxstat -s > stat.txt");
filefd = open("stat.txt",0);
if(filefd <0)
{
perror("FILE OPEN ERROR");
printf("\n three");
exit(1);
}
if((n=read(filefd, BUFFER, 2048)) == -1)
{
perror("FILE READ ERROR");
printf("\n four");
exit(1);
}
if (write(new_fd, BUFFER, strlen(BUFFER)) == -1)
perror("FILE send ERROR");
close(filefd);
printf("\n five");
exit(1);
}//end if

else

if(strcmp(command,"state-d")==0)
{
system("faxstat -d > stat_d.txt");
filefd = open("stat_d.txt",0);
if(filefd <0)
{
perror("FILE OPEN ERROR");
printf("\n six");
exit(1);
}
if((n=read(filefd, BUFFER, 2048)) == -1)
{
perror("FILE READ ERROR");
printf("\n seven");
exit(1);
}
if (write(new_fd, BUFFER, strlen(BUFFER)) == -1)
perror("FILE send ERROR");
close(filefd);
printf("\n eight");
exit(1);
}//end if

else
if(strcmp(command,"pgrep commandserver")==0)
{
system("pgrep commandserver > stat_d.txt");
filefd = open("stat_d.txt",0);
if(filefd <0)
{
perror("FILE OPEN ERROR");
printf("\n nine");
exit(1);
}
if((n=read(filefd, BUFFER, 2048)) == -1)
{
perror("FILE READ ERROR");
printf("\n ten");
exit(1);
}
if (write(new_fd, BUFFER, strlen(BUFFER)) == -1)
perror("FILE send ERROR");
close(filefd);
printf("\n eleven");
exit(1);
}//end if
else
if(strcmp(command,"ps -a")==0)
{
system("ps -a > stat_d.txt");
filefd = open("stat_d.txt",0);
if(filefd <0)
{
perror("FILE OPEN ERROR");
printf("\n twelve");
exit(1);
}
if((n=read(filefd, BUFFER, 2048)) == -1)
{
perror("FILE READ ERROR");
printf("\n thirteen");
exit(1);
}
if (write(new_fd, BUFFER, strlen(BUFFER)) == -1)
perror("FILE send ERROR");
close(filefd);
printf("\n fourteen");
exit(1);
}//end if
else
system(command);
}//inner while loop
close(new_fd);
printf("\n fifteen");
exit(0);
}//end if fork
close(new_fd); // parent doesn’t need this

}//end while
return 0;
}
 
Old 07-03-2009, 11:35 AM   #2
David the H.
Bash Guru
 
Registered: Jun 2004
Location: Osaka, Japan
Distribution: Arch + Xfce
Posts: 6,852

Rep: Reputation: 2037Reputation: 2037Reputation: 2037Reputation: 2037Reputation: 2037Reputation: 2037Reputation: 2037Reputation: 2037Reputation: 2037Reputation: 2037Reputation: 2037
I can't help you with the code, but I can give you some general advice about your post.

1) Please use [code][/code] tags around your code, so that the formatting doesn't get lost or mess up the page layout.

2) This is the "general" forum, for miscellaneous off-topic posts. You probably want this moved to the programming forum. Use the "report" button at the bottom of the post and ask the moderators to move it to a more appropriate forum.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
samba compatibility with microsoft srvtools.exe (usrmgr.exe and srvmgr.exe) checkmate3001 Linux - Software 1 09-06-2008 05:08 AM
prematurely terminated connection during a large file transfer rob_xx17 Linux - Networking 7 03-22-2006 10:15 AM
execute exe file mtitu11 Linux - General 2 09-12-2005 05:25 PM
run a .exe file kuertensun Debian 6 07-01-2005 11:01 AM
Wine issue with iKernel.exe ex0r Linux - Newbie 1 03-13-2004 03:22 PM

LinuxQuestions.org > Forums > Non-*NIX Forums > General

All times are GMT -5. The time now is 09:40 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration