System call and DMA blocking

Dear programmers,

I have a problem concerning with the 'system' call. I am developing an application (APP1) that handle a data acquisition card which make use of a DMA channel. All works fine at this point, but when I try to make from my APP1 a call to 'system("kate&")' to execute a command to start another application, for example, kate KDE editor, then my APP1 block the DMA channel and I need to reset the acquisition card interface to run again my APP1. I think it is due the system call do a fork, so the new child is a copy of the father process, and therefore the child try to share the DMA channel with the main process.

So, I'd like to know if there is any way ( other than 'system' call) to execute/launch another application since my APP1 without blocking the DMA channel. Any suggestions ?
Thanks all, Jose M.
Yes, there is the exec*() family of functions, but system() more than likely ends up invoking one of them already.

EDIT: but you'll need to do a fork() to create a child process first (and then perform the exec() on the child thread).
Last edited on
Topic archived. No new replies allowed.