Автор Тема: Как мога да генерирам поредица само от единици.  (Прочетена 2027 пъти)

Naka

  • Напреднали
  • *****
  • Публикации: 3403
    • Профил
Искам по подобие на /dev/zero да мога да генерирам безкрайна поредица от 1111111111111, или 5555555 или АААААА.
мислиx нещо подобно на
cat /dev/zero | OR '0xFF' има ли някакви команди, които могът да правят битови маски?
« Последна редакция: Apr 17, 2009, 10:17 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Задължително ли е да е безкрайна поредица от една и съща стойност? Понеже в момента се сещам само за /dev/random и /dev/urandom, но те генерират случайни стойности - /dev/urandom използва вътрешна база от стойности, а /dev/random генерира напълно случайни стойности (да живее Linux за това :D ). Каква всъщност е целта на занятието?
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

Naka

  • Напреднали
  • *****
  • Публикации: 3403
    • Профил
Да безкрайна поредица ми трябва.
Целта ми е да запълня цял хард диск вместо с нули, с едниници и с '55555' и 'ААААА'.
Имам едни подозрения ............ за чексумата на секторите ама  е дълго за обеснение.
« Последна редакция: Apr 17, 2009, 12:02 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

edmon

  • Гост
не че съм много наясно ама:
с един цикъл
 while() echo "1"

  в едно сцриптче
и после
./сцриптцч > | alabala
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3403
    • Профил
Трябва и да е много бързо, така че със скриптове няма да стане.
Активен

Perl - the only language that looks the same before and after encryption.

Archangel

  • Напреднали
  • *****
  • Публикации: 152
  • Distribution: Fedora 11.91 (Rawhide)
  • Window Manager: GNOME 2.27.5
  • ненормалник
    • Профил
Принципно
Код:
    yes <string> 

като <string> е това което се повтаря ще го направи но има и нов ред демек
Код:
    yes 1 

прави:

Код:
1
1
1
1
1
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Само аз ли си мисля, че /dev/zero не генерира "0", а 0, т.е. не байтове, със стойност, отговаряща на ASCII кода на цифрата нула, а байтове със стойност нула?
Активен

spirtbrat

  • Напреднали
  • *****
  • Публикации: 76
  • Distribution: Arch Linux
  • Window Manager: Gnome
    • Профил
Трябва и да е много бързо, така че със скриптове няма да стане.

Ми, напиши го на С тогава. Как осъществяваш писането по харда? Файл ли създаваш?
Активен

The harder I work, the luckier I goddamned get.

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Само аз ли си мисля, че /dev/zero не генерира "0", а 0, т.е. не байтове, със стойност, отговаряща на ASCII кода на цифрата нула, а байтове със стойност нула?
И аз така го знам :) Затова се сещам само за /dev/random и /dev/urandom. Е, щом трябва да е бързо, тогава остава само /dev/urandom, защото /dev/random е бавен (докато мисли напълно случайните стойности). Забравих да кажа, че и тези две псевдо-устройства могат да генерират безкрайни редици, както /dev/zero. Затова, Naka, ако целта ти е да запълниш съответния дял с ненулева информация, то /dev/urandom ще ти свърши работа (какво значение има в този случай дали запълването ще е с константна или случайна стойност?). А питах каква е целта на занятието, защото, ако искаш да тестваш как някакъв код се държи при липса на свободно място на дяла, то не е нужно да запълваш дяла - можеш да използваш /dev/full.

edit: Загрях най-сетне какво отговори за целта на занятието :D Ама защо се пестиш в обяснението? Обясни ;)
« Последна редакция: Apr 17, 2009, 14:49 от neter »
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Само не мога да разбера защо един цикъл извъртян чрез bash скрипт трябва да е по-бавен от четенето на /dev/zero примерно....
Активен

"Knowledge is power" - France is Bacon

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Код:
#include <stdio.h>
int main(int argc, char *argv[])
{
while(){
     putchar(*argv[1]);
}
}
Активен

0x2B|~0x2B

foxb

  • Напреднали
  • *****
  • Публикации: 175
    • Профил
    • WWW
man shred  ???

не става ли?

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Дай по-добра дефиниция на "поредица само от единици".
Ако имаш пред вид файл, от който искаш да четеш байт по байт и да ти връща 1 за всеки байт, значи тази единица трябва да ти е символа '1'  (тип char na C). Но тази единица ти заема 1 байт, т.е 8 бита и битовата последователност е според ACII кодовата таблица.
Ако ползваш числен тип, то той ще ти заема поне 1 байт и двоичното (битовото) представяне на 1цата ще е 00..01 Т.е. ако изпълниш дял на харда по някой от тези начини битовото съдържание ще бъде последователност от комбинация на 0ли и 1ци.
Хард, изпълнен само с 0ли, би трябвало (предполагам) да е изпълнен само с 0леви байтове, което значи, че и всички битове са 0ли. Ако искаш всички битове да са 1ци - избери си числен тип и запълни дяла със максималната му стойност (тази, която има двоично представяне 11...1).
Активен