Полный путь к файлу linux в программе С++

221
26 ноября 2016, 19:09

Хочу написать программу, которая создаст мне файл не в папке самой программы, а в заданой мной директории линукс, например, ~/workspace/file.txt. Я задаю полный путь, компилирую программу, выполняю, но файл ею не создается. Что я делаю не так?

#include <fstream>
#include <string>
    int main()
    {
        const char *path="/workspace/file.txt";
        std::ofstream file(path);
        std::string data("data to write to file");
        file << data;
        file.close();
    }
Answer 1

Скорее всего, у программы нет прав на запись в данную директорию. Для проверки выполните #chmod 777 /workspace и #setenforce 0

И попробуйте выполнить вот такой код:

#include <iostream>
#include <fstream>
#include <string>
    int main()
    {
        std::ofstream tmpfile("/workspace/tempfile.txt");
        std::string mystring("data to write to file");
        tmpfile << mystring << std::endl;
        tmpfile.close();
    }

Код точно рабочий - проверил на своей виртуалке:

[root@svm]# rm -rf /workspace/*
[root@svm]# cat output.c
#include <iostream>
#include <fstream>
#include <string>
    int main()
    {
        std::ofstream tmpfile("/workspace/tempfile.txt");
        std::string mystring("data to write to file");
        tmpfile << mystring << std::endl;
        tmpfile.close();
    }
[root@svm]# g++ output.c -o myprog
[root@svm]# ll /workspace/
total 0
[root@svm]# ./myprog
[root@svm]# ll /workspace/
total 4
-rw-r--r--. 1 root root 22 Oct 19 20:56 tempfile.txt
[root@svm]# cat /workspace/tempfile.txt
data to write to file
[root@svm]#
READ ALSO
Посоветуйте язык/фреймворк [закрыто]

Посоветуйте язык/фреймворк [закрыто]

Мне нужно сделать наглядно (графически) перевод из одной сс (системы счисления) в другуюНа C++ я реализовал все (в командной строке) но сказали...

149
Qt Как выполнить метод в главном потоке?

Qt Как выполнить метод в главном потоке?

У меня есть приложение которое выполняет некоторую работу в отдельном потоке:

413
Как передать данные &ldquo;загрузки&rdquo; cpu в программу на с\с++?

Как передать данные “загрузки” cpu в программу на с\с++?

Суть в следующем: я хочу передать в программу на с\с++ данные о загрузке cpu или gpu(например, температуру) на linux(ubuntu 1604), но не используя при этом...

269