Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Comunicação entre Processos


Xii Jão

Pergunta

ola,sou um programador amador... aprendi c++ na facu e decide expandir meus conhecimentos...

Estou desenvolvendo um jogo, em opengl...

gostaria de saber se tem como criar um programa para ler alguns dados de um arquivo e retornar, para um programa q o chamou, um vetor com os dados lidos???

tentei criar um ponteiro no programa e passar para o outro como string, e dpois converte-lo novamente para ponteiro,ate ai funciona beleza. Mas quando eu tento alterar o conteudo o programa da pau...

andei pesquisando e descobri q para fazer algo do tipo devo usar: Comunicação entre Procesos... pipes,fork,Sockets e outros... mais ate agora não consegui entender direito o uso desses...

alguém pode me ajudar???

algum exemplo q pareça com o que eu preciso???

desde já agradeço.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

um programa que retorna um vetor com dados lidos :

não sei se entendi bem mas poderia ser : UMA FUNCAO QUE PROCESSA OS DADOS

no estilo :

Dadosprocessados* processarDados(...)//podendo receber qualquer parametro

Isso funciona se e somente se o processamento interromper o funcionamento do programa

se o programa tiver de fazer algo enquanto esses dados são processados a historia muda completamente

pois ai comecamos a falar de paralelismo

Explica melhor o funcionamento e como nosso amigo perguntou qual SO você usa e pretede rdar seu pgm

Editado por mvrocha
Link para o comentário
Compartilhar em outros sites

  • 0

Eu uso o windows...

não tem problema o "processamento interromper o funcionamento do programa"... não precisa haver um paralelismo...

eu quero é que um programa execute outro para ler alguns inteiros de um arquivo, modificar esses valores e retornar para o programa principal esses valores modificados...

vlw

Link para o comentário
Compartilhar em outros sites

  • 0

é mais simples do que parece, já fiz isso para aproveitar um programa já escrito , o que deve fazer é escrever:

Programa Principal e escrever o arquivo com os numeros e FECHAR O ARQUIVO, é perigoso deixar duas referencias para o mesmo arquivo

chamar o programa que processa os dados com "system()" -- a funcao system esta declarada em stdlib.h e recebe um comando para o systema executar no seu caso o

prompt do DOS -- é comum em windows usar system("PAUSE") que executa o comando PAUSE no DOS e não fechara imediatamente o programa

agora o programa auxiliar pode receber o programa por linha de comando ou ser padrão o nome do arquivo que ele recebe , altere o arquivo com esse programa e o programa principal tera , agora ,esse arquivo processado

Assim

{
/*Escrita inicial*/
system("seu programa ")
/*Uso posterior d arquivo já modificado*/
}

Espero ter ajudado !!!

Caso contrario posso enviar um exemplo.

Link para o comentário
Compartilhar em outros sites

  • 0

na verdade eu não quero q o programa altere o arquivo! eu quero q ele altere os dados e retorne para o programa principal esses novos dados sem q o principal tenha q abrir algum tipo d arquivo...

d qualquer maneira vlw...

Ou você pode fazer um daemon e utilizar IPC, pra reduzir delays: http://msdn.microsoft.com/pt-br/library/aa365574(VS.85).aspx

Mas... ; )

Abraços.

eu já andei dando uma olhada nesse site...é realmente algo desse tipo q eu quero, so que os exemplos dele não roda da erro na hora de compilar...

você sabe onde eu posso achar algum exemplo???

vlw

Editado por Xii Jão
Link para o comentário
Compartilhar em outros sites

  • 0

Se você quer q um PROGRAMA externo faca isso voce tera de usar uma tecnica com sockets, paralelismo.

O que eu faria e arrumar o programa para torna-lo uma funcao do pgm principal e ai pode-se retornar dados de forma simples

Ai você tera de avaliar o problema, transformar um programa em uma funcao pode ser mais simples pois aprender sobre paralelismo não é tão facil.

VLW.

Link para o comentário
Compartilhar em outros sites

  • 0

Depois de muito esforço, tempo e pesquisa aprendi a manipular Memória Compartilhada no Windows. Para facilitar minha vida eu criei uma classe. Essa classe é capaz de criar, escrever e ler qualquer tipo de dado em uma memoria compartilhada.

Resolvi postar aqui no caso de alguém tiver o mesmo problema que eu.

Download: Memoria_Compartilhada.rar

Qualquer duvida mande um email para: xiijao@hotmail.com

Vlw

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...