popen

FILE * and istream: connect the two?

Suppose I "popen" an executable, I get a FILE* in return. Furthermore, suppose I'd like to "connect" this file to an istream object for easier processing, is there a way to do this? ...

AF_UNIX socket: can I pass socket handle between processes?

Let's say I create a socketpair() and I pass the handle of one of the socket to a spawned process (popen), will the said process be able to communicate back with the parent? The examples I saw are applied using fork() which is out of scope for my current project. Updated: I tried a simple test: Client: socketpair with sockets[0] Fro...

Debugging the reading of output of a Windows console app using Python

This question is very similar to this one. I want to read output from a console app of mine. The app does not terminate, nor does it take input from stdin. When I modify rix0rrr's solution to execute my app and then run his solution, Python hangs because read(1) does not return. The initial output of the app is "Starting the server.\n"....

python popen working directory argument

hi all, I there a way to specify the running directory of command in subprocess.Popen() like Popen('c:\mytool\tool.exe',workingdir='d:\test\local') and my python script locates in c:\programs\python. IS there possible i can run c:\mytool\tool.exe in 'd:\test\local' ? it seems c:\mytool\tool.exe runs in my c:\programs\python as w...

Parsing output of apt-get install for progress bar

I'm working on a simple GUI Python script to do some simple tasks on a system. Some of that work involves apt-get install to install some packages. While this is going on, I want to display a progress bar that should update with the progress of the download, using the little percentage shown in apt-get's interface in the terminal. BUT!...

popen - locks or not thread safe?

I've seen a few implementations of popen()/pclose(). They all used a static list of pids, and no locking: static int *pids; static int fds; if (!pids) { if ((fds = getdtablesize()) <= 0) return (NULL); if ((pids = malloc(fds * sizeof(int))) == NULL) return (NULL); memset(pids, 0, fds * sizeof(int)); } O...

Closest equivalent to subprocess.communicate in Haskell

I want to do a popen() / python's subprocess.communicate from Haskell - start a program, give it stdin, and get its stdout/stderr. What's the most direct / Haskellish way to do this? ...

Using Ruby popen and PostgreSQL createuser

Hello all, I am attempting to write a very simple rake task (and merge it into a rather large rake task) that will call the following command and pass in a randomly generated password. For the moment, let's even fake the random generation and just give it a set password of 'test': createuser -SDPRE test The code I have for my task is...

Non-blocking pipe using popen?

I'd like to open a pipe using popen() and have non-blocking 'read' access to it. How can I achieve this? (The examples I found were all blocking/synchronous) ...

fclose()/pclose() may block on some file pointers

Calling fclose() here after dup()ing its file descriptor blocks until the child process has ended (presumably because the stream has ended). FILE *f = popen("./output", "r"); int d = dup(fileno(f)); fclose(f); However by manually performing the pipe(), fork(), execvp() of the popen(), and then dup()ing the pipe's read file descriptor,...

popen & status of a pipe

Let's say I spawn a process PO through popen (READ ONLY) from a process PA. I then pclose() the pipe on PA's side. On PO's side, how do I determine if stdout is still available without executing a write() ? Note that I have tried catching SIGPIPE on PO's side to no avail. UPDATED: I tried using fstat(1, &buf) without success. UPDATED...

Ruby/RoR and many subprocesses

I am trying to build a free web application using ruby/rails It should be able to send sms through online forms of various mobile operators. (like this one (in russian)). So, I need to wait for the user, who wants to send an sms through my website. establish connection to operator website. Probably, using Mechanize. retrieve captcha s...

Remove &#13; from python string

When you run something through popen in Python, the results come in from the buffer with the CR-LF decimal value of a carriage return (13) at the end of each line. How do you remove this from a Python string? ...

Running a process in pythonw with Popen without a console

I have a program with a GUI that runs an external program through a Popen call: p = subprocess.Popen("<commands>" , stdout=subprocess.PIPE , stderr=subprocess.PIPE , cwd=os.getcwd()) p.communicate() But a console pops up, regardless of what I do (I've also tried passing it NUL for the file handle). Is there any way to do that without ...

Subprocess Popen and PIPE in Python

The following code prints an empty line as an output which is false. The problem is not in the permissions, since I tested the command with 777 permissions for the pdf -file. How can you fix the command to give a right output? import subprocess from subprocess import PIPE, Popen output = Popen(['pdftotext', '/home/aal/Desktop/lkn_pdf/ap...

Kill Windows asynchronous Popen process in 2.4

I have a testing script that needs to open a process (a Pyro server), do some stuff that will call the opened process for information, and when it's all done will need to close the process back down. It's all part of an automated test on a staging server. In python 2.6 you can do this: pyro_server = subprocess.Popen(['python', 'pyro_s...

Strip final 0 off a python string

#!/usr/bin/env python import os, sys, subprocess, time while True: print subprocess.call("xsel", shell=True); time.sleep(1); Takes an entry from the clipboard and prints it, every 1 second. Result: copied0 entry0 from0 clipboard0 I do not know why it returns the final 0, but it apparently stops me from using string stri...

Does Solaris have a problem with popen?

Please have a look on this code: #include <unistd.h> #include <stdlib.h> #include <stdio.h> int main() { FILE *process_fp = popen("make -f -", "w"); if (process_fp == NULL) { printf("[ERR] make not found!\n"); } else { char txt[1024] = "all:\n\t@echo Hello World!\n"; fwrite(txt, sizeof(char), strl...

When writing Apache module, popen( svn ) fails with termination status 256

I'd like to write an online SVN repository browser. I've decided to implement it as an Apache module, wrapping around the command line client (for the time being). As I'm getting started, I have the following code: FILE *f; f = popen("/usr/local/bin/svn cat http://myrepo/svn/shell.c", "r"); char buf[1025]; if (f) { ap_rputs("open ok...

Why does this code behave differently in Python3.1 than in Python2.6?

I'm very new to programming so I apologize in advance if my question is too silly. #!/usr/bin/python2.6 import subprocess, time p=subprocess.Popen(['cat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE) for i in 'abcd': p.stdin.write(str.encode(i+'\n')) output=p.stdout.readline() print(output) time.sleep(1...