Почему не запускается создание / запись в файл с помощью fstream для Windows? - PullRequest
2 голосов
/ 29 марта 2011

Итак, я получил эту маленькую программу, которую все, очевидно, понимают.

include <iostream>  
include <fstream>  
using namespace std;  

int main () {  

 ofstream myfile;  
  myfile.open ("example.txt");  
  myfile << "Writing this to a file.\n";  
  myfile.close();  
  return 0;  
}  

Эта программа работает нормально, однако проблема в том, что, если я добавил ее для запуска при запуске Windows (в реестрах SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run), программа запускается нормально, но не создаетфайл example.txt.Почему это так и как мне этого избежать?

1 Ответ

4 голосов
/ 29 марта 2011

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

Поскольку невозможно указать рабочий каталог в параметре реестра Windows\CurrentVersion\Run, рабочий каталог наследуется от родительского процесса. Родительским процессом является оболочка explorer.exe с рабочим каталогом C:\Windows\system32. Поскольку (при условии, что UAC включен) ваш пользователь не имеет прав на эту папку, файл не создается.

...