summaryrefslogtreecommitdiffstats
path: root/tdecore/README.exec
diff options
context:
space:
mode:
Diffstat (limited to 'tdecore/README.exec')
-rw-r--r--tdecore/README.exec41
1 files changed, 41 insertions, 0 deletions
diff --git a/tdecore/README.exec b/tdecore/README.exec
new file mode 100644
index 000000000..f2065b7ad
--- /dev/null
+++ b/tdecore/README.exec
@@ -0,0 +1,41 @@
+Starting other programs
+
+In KDE 2 and KDE 3 there are several ways to start other programs from within
+your application. Here is a short summary of your options with reasons why
+you should or should not use them.
+
+1. fork + exec
+
+You never want to use this unless you have a very good reason why it is
+impossible to use KProcess.
+
+2. KProcess
+
+You want to use this if you need to start a new process which needs to be a
+child of your process, e.g. because you want to catch stdout/stderr or need
+to send it data via stdin. You should never use this to start other KDE
+applications unless your application is called kgdb :-) If you need to
+send/receive text like data to/from the process, you are probably better
+off with KProcIO
+
+3. KProcIO
+
+Like KProcess. Unlike KProcess, this class actually makes it easy to
+send data to and receive data from the process.
+
+4. startServiceByDesktopPath
+
+Preferred way to launch desktop (KDE/Gnome/X) applications or KDE services.
+The application/service must have a .desktop file. It will make use of
+KDEinit for increased startup performance and lower memory usage. These
+benefits only apply to applications available as KDEinit loadable module (KLM)
+
+5. KRun
+
+Generic way to open documents/applications/shell commands. Uses
+startServiceBy.... where applicable. Offers the additional
+benefit of startup-notification.
+KRun can start any application, from the binary or the desktop file,
+it will determine the mimetype of a file before running the
+preferred handler for it, and it can also start shell commands.
+This makes KRun the recommended way to run another program in KDE 2.