LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
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


Reply
  Search this Thread
Old 08-05-2004, 06:53 AM   #1
cppkid
Member
 
Registered: Jul 2004
Location: Pakistan
Distribution: Ubuntu
Posts: 185

Rep: Reputation: 30
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.
 
Old 08-05-2004, 07:31 AM   #2
penguin4
Senior Member
 
Registered: May 2004
Location: california
Distribution: mdklinux8.1
Posts: 1,209

Rep: Reputation: 45
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.
 
Old 08-05-2004, 07:31 AM   #3
Hko
Senior Member
 
Registered: Aug 2002
Location: Groningen, The Netherlands
Distribution: Debian
Posts: 2,536

Rep: Reputation: 111Reputation: 111
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.
 
Old 08-06-2004, 02:03 AM   #4
skoona
Member
 
Registered: Mar 2004
Location: Indiana, USA
Distribution: Fedora, CentOS, Ubuntu, OS/X, Raspbian
Posts: 90

Rep: Reputation: 18
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
    }
 
Old 08-06-2004, 02:15 AM   #5
cppkid
Member
 
Registered: Jul 2004
Location: Pakistan
Distribution: Ubuntu
Posts: 185

Original Poster
Rep: Reputation: 30
Thanks Skona that was really helpfull,
Thank's alot.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
link dies intermittently-seemingly at random- between win<->linux not linux<->linux?? takahaya Linux - Networking 10 03-09-2007 10:37 PM
triple boot linux/linux/linux No Windows involved toastermaker Linux - Newbie 12 03-02-2006 10:40 PM
Redhat (rhel v2.1) bootup problem with linux (linux vs linux-up) namgor Linux - Software 2 06-24-2004 02:49 PM
ShellExecute C Canadian_2k2 Linux - Software 7 03-03-2003 07:28 PM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 10:03 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration