Byla vydána nová verze 25.12.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Společnost Valve publikovala přehled To nej roku 2025 ve službě Steam aneb ohlédnutí za nejprodávanějšími, nejhranějšími a dalšími nej hrami roku 2025.
Byly publikovány výsledky průzkumu mezi uživateli Blenderu uskutečněného v říjnu a listopadu 2025. Zúčastnilo se více než 5000 uživatelů.
V dokumentově orientované databázi MongoDB byla nalezena a v upstreamu již opravena kritická bezpečností chyba CVE-2025-14847 aneb MongoBleed.
Při úklidu na Utažské univerzitě se ve skladovacích prostorách náhodou podařilo nalézt magnetickou pásku s kopií Unixu V4. Páska byla zaslána do počítačového muzea, kde se z pásky úspěšně podařilo extrahovat data a Unix spustit. Je to patrně jediný známý dochovaný exemplář tohoto 52 let starého Unixu, prvního vůbec programovaného v jazyce C.
FFmpeg nechal kvůli porušení autorských práv odstranit z GitHubu jeden z repozitářů patřících čínské technologické firmě Rockchip. Důvodem bylo porušení LGPL ze strany Rockchipu. Rockchip byl FFmpegem na porušování LGPL upozorněn již téměř před dvěma roky.
K dispozici je nový CLI nástroj witr sloužící k analýze běžících procesů. Název je zkratkou slov why-is-this-running, 'proč tohle běží'. Klade si za cíl v 'jediném, lidsky čitelném, výstupu vysvětlit odkud daný spuštěný proces pochází, jak byl spuštěn a jaký řetězec systémů je zodpovědný za to, že tento proces právě teď běží'. Witr je napsán v jazyce Go.
Yazi je správce souborů běžící v terminálu. Napsán je v programovacím jazyce Rust. Podporuje asynchronní I/O operace. Vydán byl v nové verzi 25.12.29. Instalovat jej lze také ze Snapcraftu.
Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.
Můj problém je v ukázce kódu níže – jakmile nastavím stdin flag O_NONBLOCK, následující výstup na stdout se po chvíli zastaví a nehodlá pokračovat. Jakmile flag na stdin zruším, vše opět funguje jak má. Je to standardní chování? Dá se ovlivnit?
Díky za každou reakci
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
int main(int argc, char** argv)
{
int flags, i;
char foo[]=
"% 6d 012345678901234567890123456789012345678901234567890123456789\n";
// vypise se vse
for (i= 0; i < 10000; i++) printf(foo, i);
// vypise se
puts("\nklavesu...");
fgetc(stdin);
flags= fcntl(fileno(stdin), F_GETFL, 0);
fcntl(fileno(stdin), F_SETFL, flags | O_NONBLOCK);
// NEvypise se vse
for (i= 0; i < 10000; i++) printf(foo, i);
// NEvypise se ani tohle
puts("\n*** KONEC ***");
fcntl(fileno(stdin), F_SETFL, flags);
// tohle se uz vypise
puts("\nklavesu...");
fgetc(stdin);
// vypise se vse
for (i= 0; i < 10000; i++) printf(foo, i);
// vypise se
puts("\n*** KONEC ***");
return (0);
}
using standard I/O with nonblocking descriptors, a recipe for disaster(ale celé som to nečítal, takže neviem, v čom je ten problém) Tento program dokazuje, že zmena stdin na neblokujúci, zmení aj stdout a stderr (aspoň u mňa).
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
int main(int argc, char** argv)
{
int flags;
fprintf(stdout, "stdin: %s\n", (fcntl(fileno(stdin), F_GETFL, 0) & O_NONBLOCK) ? "NONBLOCK" : "BLOCK");
fprintf(stdout, "stdout: %s\n", (fcntl(fileno(stdout), F_GETFL, 0) & O_NONBLOCK) ? "NONBLOCK" : "BLOCK");
fprintf(stdout, "stderr: %s\n", (fcntl(fileno(stderr), F_GETFL, 0) & O_NONBLOCK) ? "NONBLOCK" : "BLOCK");
flags= fcntl(fileno(stdin), F_GETFL, 0);
fcntl(fileno(stdin), F_SETFL, flags | O_NONBLOCK);
fprintf(stdout, "stdin: %s\n", (fcntl(fileno(stdin), F_GETFL, 0) & O_NONBLOCK) ? "NONBLOCK" : "BLOCK");
fprintf(stdout, "stdout: %s\n", (fcntl(fileno(stdout), F_GETFL, 0) & O_NONBLOCK) ? "NONBLOCK" : "BLOCK");
fprintf(stdout, "stderr: %s\n", (fcntl(fileno(stderr), F_GETFL, 0) & O_NONBLOCK) ? "NONBLOCK" : "BLOCK");
fcntl(fileno(stdin), F_SETFL, flags);
return (0);
}
Tiskni
Sdílej: