Stack Overflow em Português Asked by Lucas Fellipe Mondini Pereira on December 4, 2021
Estou tentando fazer um codigo para chamar a função do windows de ping e usar a stream de saida para arquivo do windows, e ao usar o codigo que o programa chama na console do windows da certo, mas pelo programa tenho um log dizendo "o arquivo ja esta sendo usado por outro processo"
class Archive{
string name;
public:
string getName(){
return this->name;
}
fstream archive;
Archive(string name){
this->name = name;
archive.open(name.c_str(), ios::out | ios::app);
}
};
void ping (Archive &A, string IP){
string command = "ping -t -a ";
command.insert(command.size(), IP);
command.insert(command.size(), " > ");
command.insert(command.size(), A.getName());
A.archive << system(command.c_str());
getchar();
}
int main()
{
Archive A("Ping.txt");
ping(A, "8.8.8.8");
}
Porque está acontecendo esse erro?
Como resolvo?
e como faria melhor a sequencia que fiz ali
command.insert(command.size(), IP);
command.insert(command.size(), " > ");
command.insert(command.size(), A.getName());```?
Você não esta dizendo um caminho no instante de criação. Quando se chama pela console o programa tem como contexto o caminho em que esta e portanto consegue criar o arquivo. No entanto quando ocorre o duplo click o programa não possui esse contexto.
Solução:
Archive A("./Ping.txt");
Answered by gorn on December 4, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP