LINUX.ORG.RU

недопонял...


0

0

блин, уже постил недавно,не могу допереть-

как с помощью например execv запустить mplayer и передать ему аргументами путь к файлу, имя файла

★★★★

Re: недопонял...

char *arv[4];

argv[0]="/где/лежит/mplayer/mplayer";
argv[1]="/путь/к/файлу";
argv[2]="имя_файла";
argv[3]=NULL;

...

if(execv(argv[0],argv)!=0)
   perror("mplayer трындец:");

Die-Hard ★★★★★ ()

Re: недопонял...

>аргументами путь к файлу, имя файла

а mplayer уже так умеет?

char **args = {"mplayer", аргумент1, аргумент2, ..., NULL};

execv("/usr/bin/mplayer", args);

хотя я б рекомендовал execlp("mplayer", "mplayer", аргумент1, аргумент2, ..., NULL);

generatorglukoff ★★ ()
Ответ на: Re: недопонял... от Die-Hard

Re: недопонял...

Даже if не нужен: просто execv(); perror(); exit();

Die-Hard ★★★★★ ()
Ответ на: Re: недопонял... от Die-Hard

Re: недопонял...

сделал так:

#include <iostream.h>

main()
{
char *argum[3];

argum[0]="mplayer";
argum[1]="/путь/к/файлу/файл";
argum[2]=NULL;

(execv(argum[0],argum);
}

при запуске "изделия" ничего не происходит и компилируется абсолютно молча...
пинайте

S_Paul ★★★★ ()
Ответ на: Re: недопонял... от S_Paul

Re: недопонял...

то есть не (execv(argum[0],argum); а execv(argum[0],argum);

S_Paul ★★★★ ()
Ответ на: Re: недопонял... от S_Paul

Re: недопонял...

#include<unistd.h>

main()
{
char *argum[3];

argum[0]="/полный/путь/к/mplayer";
argum[1]="/путь/к/файлу/файл";
argum[2]=NULL;

 execv(argum[0],argum);
}

Uncle_Theodore ★★ ()
Ответ на: Re: недопонял... от S_Paul

Re: недопонял...

> а как задать один из аргументов вручную по запросу, по cin>> например?

Если cin, то C++, правильно?

#include<iostream>
#include<unistd.h>

using namespace std;

int main()
{
  string progname, filename;

  cout << "whatcha gonna launch? gimme the proggie name\n";
  cin >> progname;
  cout << "now yo gimme da file parameter, yo hear?\n";
  cin >> filename;

  char * argum[3] = {(char*)progname.c_str(), 
		     (char*)filename.c_str(), 
		     NULL};

  execv(argum[0],argum);

  return 0;
}

Только вообще говоря, надо бы проверять, что файлы существуют, и так далее...

Uncle_Theodore ★★ ()
Ответ на: Re: недопонял... от S_Paul

Re: недопонял...

Ну ёмаё, ну чувак, ну почитай man execv, ну изучи С++, ну что же ты так тупиш-то?

anonymous ()
Ответ на: Re: недопонял... от Uncle_Theodore

Re: недопонял...

спасибо,
ну ламо я, и мне стыдно :(
С++ изучаю "Харви и Пол Дейтел - как пограммировать на с++","с++ в примерах"

S_Paul ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.