Показать сообщение отдельно
Старый 05.02.2011, 14:12   #10
tipsy
 
Аватар для tipsy
 
Регистрация: 10.07.2010
Сообщений: 415
Репутация: 311
По умолчанию

Цитата:
Сообщение от Pashkela Посмотреть сообщение
мда, потестил на другой системе (не на бубунте) - действительно, все логи оставались в /tmp дире неудаленные))) Вот что значит пилить чужой код и не прочитать КАЖДУЮ строчку. Хотя автор в качестве издевки что ли оставил коментарий:

//unlink(tmpfilename);

но без кода)
Код волшебным образом появится, если убрать два слеша.

Цитата:
mv не схавало tmp-файл размером 165 mb) Так что уж лучше просто - rm
mv не "хавает" файлы, а заменят в файловой системе запись о файле во втором аргументе тем, что указан в первом (если файлы на одном разделе). Содержимое и размер файлов роли не играет.

Цитата:
Код:
int copy_tmp(char *dstfilename, char *tmpfilename)
{
char buffer[BUFSIZ];

sprintf(buffer, "cat %s > %s", tmpfilename, dstfilename);
#ifdef DEBUG
printf("%s\n", buffer);
#endif

if (system(buffer) < 0) {
printf("Error copying from tempfile!");
return 0x48;
}
//unlink(tmpfilename);
sprintf(buffer, "rm %s", tmpfilename); <==== тут
}
Функция sprintf не выполняет шелл-команды.

Последний раз редактировалось tipsy; 05.02.2011 в 14:17.. Причина: терминология
tipsy вне форума   Ответить с цитированием