Problem s funkciou execve – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Problem s funkciou execve – C / C++ – Fórum – Programujte.comProblem s funkciou execve – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Payne
~ Anonymní uživatel
37 příspěvků
23. 11. 2007   #1
-
0
-

Zdravim,

mal som spravit taky program pre linux, len akosi mi nejde a ja neviem prist preco...

Konkretne problem je u funkcii execve a sice pri predavani parametrov potomkovi, nevedeli by ste mi niekto pomoct?

tu su zdrojaky...

potomok.c kompilovany ako potomok :



#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
char *buffer;
int file_pipe,
velkost;

file_pipe = atoi(argv[1]);

velkost = atoi(argv[2]);

buffer = (char *) malloc(velkost * sizeof(char));

read(file_pipe, buffer, velkost);

printf("Vypis pipe: %s\n", buffer);

return 0;
}


no a rodic.c kompilovany ako rodic (aj ked na tom nezalezi...)


#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
int pid;
int file_pipes[2];
char *pole[2];
char text[] = "hello world!";

pole[0] = (char *) malloc(10 * sizeof(char));
pole[1] = (char *) malloc(10 * sizeof(char));

pipe(file_pipes);
sprintf(pole[0], "%d", file_pipes[0]);
printf("%s", pole[0]);
sprintf(pole[1], "%d", strlen(text));

pid=fork();

switch(pid)
{
case -1:
perror("Nepodarilo sa vytvorit potomka.");
break;

case 0:
execve("potomok", pole, NULL);
break;

case 1:
write(file_pipes[1], text, strlen(text));
printf("Ja som rodic...");
wait(NULL);
break;
}

free((void *) pole[0]);
free((void *) pole[1]);

return 0;
}

Nahlásit jako SPAM
IP: 217.119.114.–
Reklama
Reklama
_k_
Duch
23. 11. 2007   #2
-
0
-

Pole sa predava ako argv[] novemu programu, takze ma vyzerat takto: {"meno_programu", "arg1", "arg2", ... , "argN", NULL}.
Keby si precitas man execve alebo exec tak to tam vsetko je, takze nie je od veci poznamenat RTFM!!! ;)

Nahlásit jako SPAM
IP: 195.91.54.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 112 hostů

Podobná vlákna

Problém s funkciou — založil Kent

Problém — založil Já

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý