Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сохранить временный файл? 
:(
    Опции темы
Artem91
Дата 7.3.2008, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



как сохранить файл, созданный функцией tmpfile()
PM MAIL   Вверх
Andrey44
Дата 7.3.2008, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Код

// crt_tmpfile.c
// compile with: /W3
// This program uses tmpfile to create a
// temporary file, then deletes this file with _rmtmp.
#include <stdio.h>

int main( void )
{
   FILE *stream;
   char tempstring[] = "String to be written";
   int  i;

   // Create temporary files.
   for( i = 1; i <= 3; i++ )
   {
      if( (stream = tmpfile()) == NULL ) // C4996
      // Note: tmpfile is deprecated; consider using tmpfile_s instead
         perror( "Could not open new temporary file\n" );
      else
         printf( "Temporary file %d was created\n", i );
   }

   // Remove temporary files.
   printf( "%d temporary files deleted\n", _rmtmp() );
}



Цитата

The tmpfile function creates a temporary file and returns a pointer to that stream. The temporary file is created in the root directory. To create a temporary file in a directory other than the root, use tmpnam or tempnam in conjunction with fopen.

If the file cannot be opened, tmpfile returns a NULL pointer. This temporary file is automatically deleted when the file is closed, when the program terminates normally, or when _rmtmp is called, assuming that the current working directory does not change. The temporary file is opened in w+b (binary read/write) mode.




Это сообщение отредактировал(а) Andrey44 - 7.3.2008, 12:52


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Artem91
Дата 7.3.2008, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



Andrey44, не вижу там, чтобы временный файл сохранился!!!  smile 
PM MAIL   Вверх
Andrey44
Дата 7.3.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Цитата

This temporary file is automatically deleted when the file is closed, when the program terminates normally, or when _rmtmp is called, assuming that the current working directory does not change



--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Artem91
Дата 7.3.2008, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



мне нужно временный файл сохранить в нужное место, как это сделать?
PM MAIL   Вверх
Andrey44
Дата 7.3.2008, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Да , действительно его не видно даже если
Код

FILE *stream;
tmpfile_s(&stream);
if( (stream == NULL ) )// C4996
MessageBox( L"Could not open new temporary file\n" );


Он создается, но где?

Добавлено через 36 секунд
Создавай сам, а потом удаляй!
В чем проблема?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Artem91
Дата 7.3.2008, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



Цитата(Andrey44 @ 7.3.2008,  13:11)
Создавай сам, а потом удаляй!
В чем проблема?

Нет, так не катит, у меня есть задание создать временный файл, записать в него инфу (это я все сделал), а потом сохранить его в нужное место! (Вот в этом и проблема)
PM MAIL   Вверх
Andrey44
Дата 7.3.2008, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Если ты знаешь где он делай CopyFile(.......) smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Artem91
Дата 7.3.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



не знаю...
PM MAIL   Вверх
Andrey44
Дата 7.3.2008, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



А что же ты в него пишешь?
А читаешь из него? smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
bsa
Дата 8.3.2008, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Как-то так надо делать:
Код
FILE *tmp = tmpfile();
....//здесь мы в него что-то пишем
fseek(tmp, 0, SEEK_SET);
FILE *newfile = fopen("copyfile.dat", "w+b");
//копируем в новый файл
while(!feof(tmp)) {
      char buffer[1024];
      size_t sz = fread(buffer, 1, sizeof(buffer), tmpfile);
      fwrite(buffer, 1, sz, newfile);
}
fclose(newfile);
fclose(tmpfile);

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1142 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.