|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||
Почему БЕЗОШИБОЧНО создаётся файл, а его не видно?18.04.2011, 22:58. Показов 4604. Ответов 30
Метки нет (Все метки)
Друзья! Вот простой код, создаётся файл, а имя для него генерит функция
tmpnam; Но файла не видно! Ни после выполнения программы ни в процессе (перед закрытием). никак, все каталоги перерыл. Чё-то я не понимаю, чё за файл такой? И где его можно применить? Что касается временных файлов, то есть функция tmpfile, она создаёт ВРЕМЕННЫЕ файлы. Что это значит, я не вникаю, но , если файл созданный с помощью tmpfile будет вести себя страно, будет невидимым, я не удивлюсь. ...tmpnam же по сути просто-напросто генерит строку символов, не совпадающую ни с одним из названием файлов, которые есть в текущем каталоге. Всё! И не больше. Так нет же, tmpnam(tmpstr) возвращает указатель, применяя который как название файла, файл невидим. Чё-то ребята я не пойму, это так задумано создателями?
0
|
||||||
| 18.04.2011, 22:58 | |
|
Ответы с готовыми решениями:
30
Объект QDialog создается но его не видно Почему не создаётся файл и не производится запись в пустой файл? Почему не создается файл? |
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
|
|||||||
| 19.04.2011, 17:34 | |||||||
0
|
|||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||
| 19.04.2011, 17:58 [ТС] | ||||||
|
fasked,
easybudda, А мне казалось, я убедил вас, что написать можно всё, что угодно.. Можно написать что рабочей директория считается текущая, а рабочей будет корневой каталог диска... Ну что ж ещё раз, из MSND
Создаёт временное имя файла во временной же директории... ТО есть я ЯВНО указываю директорию, а при создании имени файла берётся за основу ЛЕВАЯ директория, я в неё в жизни не лазил и щас не хочу, я хочу работать в ТЕКУЩЕЙ, а они мне подсовывают непонятно что. C:\DOCUME~1\user\LOCALS~1\Temp\2\stq2 is safe to use as a temporary file. ...Нет, ну смешно же. Мы проверяем на наличие имён файлы директории X (в данном случае c:\\tmp ), а создаём такой файл для диретории Y Вот и проверяли бы Y на наличие таких файлов.
0
|
||||||
|
|
||||
| 19.04.2011, 18:32 | ||||
С этим понятно? То есть, Вы можете стереть все переменные среды окружения и радоваться ![]() Ниже (в этой же статье написано еще раз):
Если переменная среды окружения TMP определена и установлена как валидный путь к директории, то уникальные имена файлов будут сгенерированы для директории определенной в TMP. Если TMP не определена или установлена как имя несуществующей директории, _tempnam будет использовать параметр dir как путь для которого будут сгенерированы уникальные имена. Если TMP не определена или установлена как имя несуществующей директории и если параметр dir равен NULL или имени директории, которой не существует, то _tempnam будет исопльзовать текущую рабочую директорию для генерации уникальных имен. В настоящее время, если и TMP и dir указывают на директории, которых не существует, вызов _tempnam завершится с ошибкой. В общем все сложно с этой функцией у мелкомягких, как и со всеми остальными POSIX функциями. Однако, я все равно не могу понять причины. Для чего создавать файл в директории с программой, если он все равно временный?
1
|
||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 19.04.2011, 18:44 [ТС] | |
|
Ну всё ясно, короче. Всё плохо.
...Файл-то не временный в то-то и дело. Он может быть и постоянным. Просто используется такая функция, а так-то его можно и не удалять; а сам он точно не удалится. Практическое применение этой функции- меньше заморочек с именами. Тем более, можно ведь давать имена файлам более или менее осмысленные, если использовать префикс. Но это, кажись, уже в мечтах.
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
|
|
| 19.04.2011, 19:36 | |
|
Ну зачем такое нужно - можно представить. Другое дело - беда со стандартными функциями, да и тьфу на них. Придумать алгоритм генерёжки имён файлов из текущего времени и буковок на хвосте, если их (файлов) больше штуки в секунду генерится - в принципе не задача...
0
|
|
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||
| 20.04.2011, 01:52 | ||||
|
msdn
стандарт не запрещает создавать файлы, уникальные именно для текущей рабочей директории, но и не обязывает поэтому компиляторы запросто могут создавать и для текущей, и не для текущей главное, они должны выдавать путь, по которому нет файла написав код, который создаёт имя файла, полагая, что тот в текущей директории, может возникнуть ошибка на каком-нибудь другом компиляторе (я приводил пример, где программа в каталоге $HOME/tmp/tests создаёт файлы в /tmp)
но выдаёт весь путь, по которому можно сразу создавать файл присоединяю инфу из C99. draft там также говорится о нулевом указателе, который может вернуть функция
0
|
||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||||||||
| 20.04.2011, 12:23 [ТС] | ||||||||||||
|
Файл stdio.h
"Redefining these macros does not effect the CRT functions." Что такое CRT, знает кто-нибудь? ...Хотя
0
|
||||||||||||
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||
| 21.04.2011, 03:19 | ||
и это вполне реально 1. сгенерировать случайную последовательность символов 2. найти в каталоге все файлы 3. сравнить последовательность с именем каждого файла
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||
| 21.04.2011, 09:37 [ТС] | ||||||
|
Я хочу быть последовательным, раз уж встал вопрос о работоспособности моего, да и не только моего компилятора, надо его выяснить тык скыть до конца. А если щас я буду реализовывать tmpnam, то я её, конечно, реализую, но вопрос о компиляторе отложится в долгий ящик таким образом. А потом вообще зарастёт мхом. Нельзя этого допускать!
...Тем более, что считайте, что tmpnam реализована уже, тут трудностей нет никаких! Начать с этой строки:
0
|
||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 21.04.2011, 10:53 [ТС] | |
|
Это что, типа бесполезно его менять?
0
|
|
| 21.04.2011, 10:53 | |
|
Почему не создается файл?
На вижу мой сайт на своем компе, на других компах его видно. Почему? Почему не создается файл и не записываются в него элементы?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|