my python code goes like this:
def a():
...
...
subprocess.call()
...
...
def b():
...
...
and so on.
My task:
1) If subprocess.call() returns within 3 seconds, my execution should continue the moment subprocess.call() returns.
2) If subprocess.call() does not return within 3 seconds, the subprocess.call() should be terminated and my execution should continue after 3 seconds.
3) Until subprocess.call() returns or 3 seconds finishes, the further execution should not take place.
This can be done with threads but how?
Relevant part of the real code goes like this:
...
cmd = ["gcc", srcname, "-o", execname];
p = subprocess.Popen(cmd,stderr=errfile)#compiling C program
...
...
inputfile=open(input,
inputfile.write(scanf_elements)
inputfile.close()
inputfile=open(input,
tempfile=open(temp,
subprocess.call(["./"+execname,str(commandline_argument)],stdin=inputfile,stdout=tempfile);#executing C program
tempfile.close();
...
...
I am trying to compile and execute a C program using python.
When I am executing C program using subprocess.call() and suppose if the C program contains an infinite loop, then the subprocess.call() should be terminated after 3 seconds and the program should continue. I should be able to know whether the subprocess.call() was forcefully terminated or successfully executed so that I can accordingly print the message in the following code.