ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] Re: [sisyphus] Re: du ошибается...
  @ 2002-12-17  8:15         ` Dmitry V. Levin
  2002-12-17 13:49           ` [Comm] " Alexey Tourbin
  0 siblings, 1 reply; 6+ messages in thread
From: Dmitry V. Levin @ 2002-12-17  8:15 UTC (permalink / raw)
  To: ALT Linux general discussion list; +Cc: ALT Linux Sisyphus mailing list


[-- Attachment #1.1: Type: text/plain, Size: 483 bytes --]

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

[-- Attachment #1.2: lseek.c --]
[-- Type: text/plain, Size: 655 bytes --]

#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;
}

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Comm] Re: du ошибается...
  2002-12-17  8:15         ` [Comm] Re: [sisyphus] Re: du ошибается Dmitry V. Levin
@ 2002-12-17 13:49           ` Alexey Tourbin
  2002-12-17 18:11             ` [Comm] " ASA
  2002-12-18 11:27             ` Alexander Kirey
  0 siblings, 2 replies; 6+ messages in thread
From: Alexey Tourbin @ 2002-12-17 13:49 UTC (permalink / raw)
  To: ALT Linux general discussion list

[-- Attachment #1: Type: text/plain, Size: 598 bytes --]

On Tue, Dec 17, 2002 at 11:15:14AM +0300, Dmitry V. Levin wrote:
> Вот вам пример в числах:
> 
> 1. Скомпилируйте lseek.c (attached),
> 2. Запустите
>    $ ./lseek 0x400000000 ~/tmp/empty
> 3. Сравните вывод от
>    $ ls -lh ~/tmp/empty
>    и
>    $ du -h ~/tmp/empty

Идея понятна, только программа не работает. :(

$ gcc lseek.c -o lseek
$ ./lseek 0x400000000 ~/tmp/empty
./lseek: lseek: 0: Invalid argument
$

> P.S. Этот предмет - для community@.

-- 
WBR, Alexey Tourbin	"He is a sane man who can have tragedy 
BIOZAK Ltd., Russia	 in his heart and comedy in his head."
					--G.K.Chesterton

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Comm] Re: [Comm] Re: du ошибается...
  2002-12-17 13:49           ` [Comm] " Alexey Tourbin
@ 2002-12-17 18:11             ` ASA
  2002-12-17 20:01               ` Vitaly Lipatov
  2002-12-18 11:27             ` Alexander Kirey
  1 sibling, 1 reply; 6+ messages in thread
From: ASA @ 2002-12-17 18:11 UTC (permalink / raw)
  To: Alexey Tourbin

Hello Alexey,

Tuesday, December 17, 2002, 5:49:09 PM, you wrote:

>> 2. Запустите
>>    $ ./lseek 0x400000000 ~/tmp/empty
>> 3. Сравните вывод от
>>    $ ls -lh ~/tmp/empty
>>    и
>>    $ du -h ~/tmp/empty

AT> Идея понятна, только программа не работает. :(
....

Ни к чему все эти программы, шелла хватит.

dd if=/dev/zero of=/tmp/empty bs=1 count=1 seek=1000000000

(только с числом нулей не переборщите)

-- 
Best regards,
 ASA                            mailto:llb@udm.ru



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Comm] Re: [Comm] Re: du ошибается...
  2002-12-17 18:11             ` [Comm] " ASA
@ 2002-12-17 20:01               ` Vitaly Lipatov
  2002-12-17 20:12                 ` Michael Shigorin
  0 siblings, 1 reply; 6+ messages in thread
From: Vitaly Lipatov @ 2002-12-17 20:01 UTC (permalink / raw)
  To: community

On Вторник 17 Декабрь 2002 21:11, ASA wrote:
> Hello Alexey,
>
> Tuesday, December 17, 2002, 5:49:09 PM, you wrote:
> >> 2. Запустите
> >>    $ ./lseek 0x400000000 ~/tmp/empty
> >> 3. Сравните вывод от
> >>    $ ls -lh ~/tmp/empty
> >>    и
> >>    $ du -h ~/tmp/empty
>
> AT> Идея понятна, только программа не работает. :(
> ....
>
> Ни к чему все эти программы, шелла хватит.
>
> dd if=/dev/zero of=/tmp/empty bs=1 count=1 seek=1000000000
>
> (только с числом нулей не переборщите)
Ваш пример физически запишет на диск столько нулей, а lseek - 
только файл создаст такого размера, не выделяя под него иноды 
(или что там). Вроде так?

-- 
Lav
Виталий Липатов
Санкт-Петербург
GNU! ALT Linux Team! LaTeX! LyX!


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Comm] Re: du ошибается...
  2002-12-17 20:01               ` Vitaly Lipatov
@ 2002-12-17 20:12                 ` Michael Shigorin
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Shigorin @ 2002-12-17 20:12 UTC (permalink / raw)
  To: community

On Tue, Dec 17, 2002 at 11:01:23PM +0300, Vitaly Lipatov wrote:
> > dd if=/dev/zero of=/tmp/empty bs=1 count=1 seek=1000000000
> Ваш пример физически запишет на диск столько нулей

man dd :)

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Comm] Re: du ошибается...
  2002-12-17 13:49           ` [Comm] " Alexey Tourbin
  2002-12-17 18:11             ` [Comm] " ASA
@ 2002-12-18 11:27             ` Alexander Kirey
  1 sibling, 0 replies; 6+ messages in thread
From: Alexander Kirey @ 2002-12-18 11:27 UTC (permalink / raw)
  To: community

Alexey Tourbin пишет:

>On Tue, Dec 17, 2002 at 11:15:14AM +0300, Dmitry V. Levin wrote:
>  
>
>>Вот вам пример в числах:
>>
>>1. Скомпилируйте lseek.c (attached),
>>2. Запустите
>>   $ ./lseek 0x400000000 ~/tmp/empty
>>3. Сравните вывод от
>>   $ ls -lh ~/tmp/empty
>>   и
>>   $ du -h ~/tmp/empty
>>    
>>
>
>Идея понятна, только программа не работает. :(
>  
>
Sorry, не смог сразу ответить...

Да, идея понятна, хотя результат не очень :(
У меня в этом году после установки Linux уже крышу сорвало
от нахлынувшей информации :)

Что касается того, как я использовал du в примере, когда создал тред, то
разобрался: du -a, просетлило по поводу содержимого...

В примере "lseek.c" изменил строчку:
    offset = strtoull (av[1], 0, 0)
на
    offset = 100000000;
$ gcc lseek.c -o lseek

>$ ./lseek 0x400000000 ~/tmp/empty
>./lseek: lseek: 0: Invalid argument
>$
>
>  
>
Как просил Dmitry V. Levin:

$ ls -lh ~/tmp/empty
-rw-------    1 test    test         95M Дек 17 14:47 /home/test/tmp/empty
$ du -h ~/tmp/empty
12K    /home/test/tmp/empty
$

--
Александр Кирей




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2002-12-18 11:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-12-17  8:15         ` [Comm] Re: [sisyphus] Re: du ошибается Dmitry V. Levin
2002-12-17 13:49           ` [Comm] " Alexey Tourbin
2002-12-17 18:11             ` [Comm] " ASA
2002-12-17 20:01               ` Vitaly Lipatov
2002-12-17 20:12                 ` Michael Shigorin
2002-12-18 11:27             ` Alexander Kirey

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git