From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 11 Jun 2003 03:32:52 +0400 From: "Dmitry V. Levin" To: ALT Devel discussion list Subject: Re: [devel] temporary file handling: questions Message-ID: <20030610233252.GA7921@basalt.office.altlinux.org> Mail-Followup-To: ALT Devel discussion list References: <20030603081729.GB13299@basalt.office.altlinux.org> <20030611031459.3c410e3a.bga@altlinux.ru> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="nFreZHaLTZJo0R7j" Content-Disposition: inline In-Reply-To: <20030611031459.3c410e3a.bga@altlinux.ru> X-fingerprint: 9658 398D 181B 1200 8FC5 26B8 F6F8 846B C1E2 3429 Sender: devel-admin@altlinux.ru Errors-To: devel-admin@altlinux.ru X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: devel@altlinux.ru List-Unsubscribe: , List-Id: ALT Devel discussion list List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: --nFreZHaLTZJo0R7j Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit On Wed, Jun 11, 2003 at 03:14:59AM +0400, Grigory Batalov wrote: > Если я правильно понимаю, fdopen/fclose используются, чтобы > "занять" файловый дескриптор потоком и предотвратить > немедленное удаление функцией unlink? Нет, неправильно. fdopen(3) использует передаваемый в качестве аргумента дескриптор. > Или fdopen/fclose приведены для примера потокового > ввода/вывода, и их можно опустить (например, мне достаточно > open/close)? В этом случае "оттягивать до последнего" > нужно вызов close(fd) ? Да, fdopen(3) приведён в качестве (реального) примера в случае, когда осуществляется чтение/запись во временный файл. Можно не использовать stdio и обойтись read(2)/write(2); в этом случае вместо fclose(3) будет вызов close(2). Главное - сделать unlink(2) как можно раньше, и обязательно до закрытия дескриптора файла. Следует избегать файловых операций с именем временного файла. -- ldv --nFreZHaLTZJo0R7j Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) iD8DBQE+5mqk9viEa8HiNCkRAucVAJ9u7ATIJYEuYDq9IYO60/9rzhCnYgCfbfRn Oo9PPR7IQgevQBreRN0ihyc= =gz4d -----END PGP SIGNATURE----- --nFreZHaLTZJo0R7j--