Byla vydána listopadová aktualizace aneb nová verze 1.85 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.85 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
git.kernel.org je nově oficiálně také v tmavém vzhledu.
Richard Hughes na svém blogu oznámil, že počet aktualizací firmwarů pomocí služby LVFS (Linux Vendor Firmware Service) přesáhl 100 milionů. Přehled podporovaných zařízení, nejnovějších firmwarů nebo zapojených výrobců na stránkách LVFS.
Byla vydána nová stabilní verze 3.19.0, tj. první z nové řady 3.19, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Z novinek lze vypíchnou podporu Raspberry Pi 5.
Altap Salamander (Wikipedie), dvoupanelový správce souborů pro Windows, byl uvolněn jako open source pod názvem Open Salamander. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPLv2.
Společnost JetBrains představila (YouTube) svou umělou inteligenci JetBrains AI a nástroj AI Assistant v IDE.
Byla vydána nová verze 255 správce systému a služeb systemd (GitHub, NEWS). Z novinek lze vypíchnout například novou službu systemd-bsod.service.
Google představil Gemini, svůj největší a nejschopnější model umělé inteligence.
openSUSE komunita vybírá nová loga. Jedním z cílů je odlišit se od SUSE. Aktuálně probíhá hlasování o logu openSUSE a čtyř distribucí Tumbleweed, Leap, Slowroll a Kalpa.
Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2023-12-05. Přehled novinek v příspěvku na blogu a poznámkách k vydání. Nově jej lze používat také s tmavým tématem.
#!/usr/bin/perl open (IN,'monbro -N out.txt |' ) or die "Error"; while ($line = {IN}) { print $line; } close IN;pokial sa jedna o vypnutie buffrovania v perle $|++; tak to som skusal a nic.
Řešení dotazu:
#!/usr/bin/perl open ($in,'ls |' ) or die "Error"; while (<$in>}) { print $_; } close $in;
while ($line = {IN})
nema to byt <IN> ?
tohle rozhodne funguje:
open IN, 'bash -c "while true; do date; sleep 5; done" |'; while ($line = <IN>) { print $line; }
Ale blbost. Žádný opakovaný EOF tam není, protože jednou zavřený deskriptor by se už zázračně neotevřel.
Problém je s bufferováním mezi znaky nový řádek. To se dá vypnout přes autoflush(IN, 1). Jenže to se vztahuje na zápisovou rouru. My potřebujem vypnout bufferování ze čtecí roury, aby <> nečekal na nový řádek nebo EOF.
Problém je v <&g;, což je převlečený IO::Handle->getline, který čeká na nový řádek.
Tohle funguje:
#!/usr/bin/perl use strict; use warnings; use IO::Handle; open (DATA, 'sh -c "printf 1; sleep 1; printf 2;" |') or die $!; STDOUT->autoflush; while (my $char = DATA->getc) { print $char; } close(DATA);
#!/usr/bin/perl
use warnings;
use IO::Handle;
open (IN, 'monbro -N chgen_test |' ) or die "Error";
STDOUT -> autoflush(1);
while ($line = <IN>) {
print $line;
}
close IN;
mohol by si mi este poradit ako nastavit veliskot toho buffera? Niekde som nasiel ze setbuff sa nepouziva od verzie 5.8.0. A neviem ako pracovat s io handlerom, ked vlastne neotvaram subor ale pipe.
Protože opět čtete po celých řádcích a ne po menších kusech (getc, ne <>). Ale jak už vám vysvětlili níže, chybu máte i na straně monbra.
Velikost bufferu je argument funkce read. Souhrn je v manuálu k IO::Handle, podrobnější popis, tipuji, v perlfunc.
Tiskni
Sdílej: