[Comm] Re: [sisyphus] Re: du ошибается...

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Вт Дек 17 11:15:14 MSK 2002


On Tue, Dec 17, 2002 at 07:53:22AM +0500, Alexander Kirey wrote:
> >du означает disk usage, а вы хотите с помощью его посчитать суммарный
> >размер файлов? Он вам и показывает disk usage.
> >
> Да-с, и как это я... Но разница почти в 100 мегабайт...

Вот вам пример в числах:

1. Скомпилируйте lseek.c (attached),
2. Запустите
   $ ./lseek 0x400000000 ~/tmp/empty
3. Сравните вывод от
   $ ls -lh ~/tmp/empty
   и
   $ du -h ~/tmp/empty

P.S. Этот предмет - для community на .


--
ldv
----------- следующая часть -----------
#include <errno.h>
#include <error.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>

int main (int ac, char *const *av)
{
	const char *fname;
	int fd;
	off_t offset;

	if (ac != 3)
		error (1, 0, "usage: offset fname");

	offset = strtoull (av[1], 0, 0);
	fname = av[2];

	fd = open (fname, O_CREAT | O_EXCL | O_WRONLY, 0600);
	if (fd < 0)
		error (1, errno, "open: %s", fname);

	if (lseek (fd, offset - 1, SEEK_SET) == (off_t)-1)
		error (1, errno, "lseek: %#llx", (unsigned long long) offset);

	if (write (fd, "", 1) < 0)
		error (1, errno, "write: %s", fname);

	if (close (fd) < 0)
		error (1, errno, "close: %s", fname);

	return 0;
}
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20021217/5b4d2779/attachment-0006.bin>


Подробная информация о списке рассылки community