Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game. |
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
 |
08-05-2004, 06:53 AM
|
#1
|
Member
Registered: Jul 2004
Location: Pakistan
Distribution: Ubuntu
Posts: 185
Rep:
|
Is there something like ShellExecute in linux??
I am porting a windows application written in VC++ to linux that uses a function ShellExecute to perform an operation on a file, Can anybody tell me the alternative in linux C++, I also want to open some document from my program as with ShellExecute in Windows.
|
|
|
08-05-2004, 07:31 AM
|
#2
|
Senior Member
Registered: May 2004
Location: california
Distribution: mdklinux8.1
Posts: 1,209
Rep:
|
cppkid; am assuming you are not unfamilar with programming. recommend
Linux Programming-A beginner`s guide. excellent coverage on all shell,s. also open all subsections of http://tldp.org/HOWTO/HOWTO-INDEX/ section
4.6Programming subsections 4.6.1 through 4.6.10. and please expand all sections including subsection for detailed information.
|
|
|
08-05-2004, 07:31 AM
|
#3
|
Senior Member
Registered: Aug 2002
Location: Groningen, The Netherlands
Distribution: Debian
Posts: 2,536
Rep: 
|
That depends...
If it is a KDE or Gnome (or maybe XFCE) application, this should be possible. If it's just a plain X-windows, GTK, SDL, Qt, or whatever "normal" (i.e. non-desktop evironment) toolkit, you would need to program you own file-type-to-application association table.
Sorry, I don't know the exact funtions to call from KDE or gnome.
|
|
|
08-06-2004, 02:03 AM
|
#4
|
Member
Registered: Mar 2004
Location: Indiana, USA
Distribution: Fedora, CentOS, Ubuntu, OS/X, Raspbian
Posts: 90
Rep:
|
There are two Glib functions available. g_spawn_command_line_sync() and g_spawn_async(). Here is an example of the later.
Code:
/* **************************************************
* sh_cmd() - executes a command in the background
* returns TRUE is command was executed (not the result of the command though..)
* NO GLOBALS
*/
static gint sh_cmd (gchar * path, gchar * cmd, gchar * args)
{
gchar cmd_line[256];
gchar **argv;
gint argp;
gint rc = 0;
if (cmd == NULL)
return FALSE;
if (cmd[0] == '\0')
return FALSE;
if (path != NULL)
chdir (path);
snprintf (cmd_line, sizeof (cmd_line), "%s %s", cmd, args);
rc = g_shell_parse_argv (cmd_line, &argp, &argv, NULL);
if (!rc)
{
g_strfreev (argv);
return rc;
}
rc = g_spawn_async (path, argv, NULL,
G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_SEARCH_PATH,
NULL, NULL, NULL, NULL);
g_strfreev (argv);
return rc;
}
Here is a snippet of the other
Code:
static gint get_new_ptable (P_Fah_monitor fm)
{
gint i_retcode = 0, i_exitcode = 0;
gchar cv_filename[384];
#ifdef DLOGIC
g_message (CONFIG_NAME":> Entered get_new_ptable(%d)...\n",fm->cb_id);
#endif
if ( fm->i_stanford_points ) // TRUE if point table IS out of date
{
chdir ( fm->path_string );
i_retcode = g_spawn_command_line_sync (
g_strdup_printf ("wget -N %s", STANDFORD_FAHPOINTS_URL),
NULL, NULL, &i_exitcode, NULL);
if( i_retcode )
{
... good if retcode = 0
}
|
|
|
08-06-2004, 02:15 AM
|
#5
|
Member
Registered: Jul 2004
Location: Pakistan
Distribution: Ubuntu
Posts: 185
Original Poster
Rep:
|
Thanks Skona that was really helpfull,
Thank's alot.
|
|
|
All times are GMT -5. The time now is 11:38 AM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|