abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 05:22 | IT novinky

    Nezisková organizace Electronic Frontier Foundation (EFF) hájící občanské svobody v digitálním světě po téměř 20 letech opouští platformu X (dříve Twitter). Na platformách Bluesky, Mastodon, LinkedIn, Instagram, TikTok, Facebook, Threads a YouTube zůstává.

    Ladislav Hagara | Komentářů: 1
    dnes 03:33 | Nová verze

    Terminálový textový editor GNU nano byl vydán ve verzi 9.0. Vylepšuje chování horizontálního posouvání pohledu na dlouhé řádky a chování některých klávesových zkratek. Více v seznamu změn.

    |🇵🇸 | Komentářů: 0
    včera 19:22 | IT novinky

    Ministerstvo financí ve spolupráci s finanční správou dnes představilo beta verzi aplikace využívající umělou inteligenci pro předvyplnění daňového přiznání. Není třeba přepisovat údaje z různých potvrzení, ani hledat správné řádky, kam údaje napsat. Stačí nahrát dokumenty a využít AI.

    Ladislav Hagara | Komentářů: 7
    včera 18:33 | Zajímavý projekt

    Výrobce počítačových periferií Keychron zveřejnil repozitář se schématy šasi klávesnic a myší. Licence je restriktivní, zakazuje většinu komerčních užití a v podstatě jsou tak data vhodná pouze pro výukové účely, hlášení a opravy chyb, případně výrobu vlastního příslušenství.

    |🇵🇸 | Komentářů: 0
    včera 18:22 | Nová verze

    Správce balíčků APT, používaný v Debianu a odvozených distribucích, byl vydán ve verzi 3.2 (seznam změn). Mezi novinkami figurují nové příkazy pro práci s historií, včetně vracení transakcí.

    |🇵🇸 | Komentářů: 0
    včera 14:33 | IT novinky

    Společnost Anthropic oznámila Projekt Glasswing a s ní související AI model Claude Mythos Preview. Jedná se o iniciativu zaměřenou na kybernetickou bezpečnost, do které se zapojily velké technologické společnosti Amazon Web Services, Anthropic, Apple, Broadcom, Cisco, CrowdStrike, Google, JPMorganChase, Linux Foundation, Microsoft, NVIDIA a Palo Alto Networks. Anthropic věří, že nový AI model Claude Mythos Preview dokáže

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 13:55 | Zajímavý software

    Firma Ojective Development vydala svůj nástroj pro monitorování a řízení odchozích síťových připojení Little Snitch i pro operační systém Linux. Linuxová verze se skládá ze tří komponent: eBPF program pro zachytávání provozu a webové rozhraní jsou uvolněny pod GNU GPLv2 a dostupné na GitHubu (převážně Rust a JavaScript), jádro backendu je proprietární pod vlastní licencí, nicméně zdarma k použití a redistribuci (cena přitom normálně … více »

    » FIDESZ🧡! « | Komentářů: 0
    8.4. 18:44 | IT novinky

    Vojenské zpravodajství (VZ) se v březnu zapojilo do mezinárodní operace proti aktivitám hackerské skupiny APT28, která je spojovaná s ruskou vojenskou zpravodajskou službou GRU a která přes slabě zabezpečené routery prováděla kybernetické útoky na státní a další organizace v ČR i zahraničí. Operaci vedl americký Federální úřad pro vyšetřování (FBI) a jejím cílem bylo odebrat útočníkům přístup k napadeným zařízením a ty následně … více »

    Ladislav Hagara | Komentářů: 28
    8.4. 16:44 | IT novinky

    Tvůrcem nejpopulárnější kryptoměny bitcoin, který se skrývá za pseudonymem Satoši Nakamoto (Satoshi Nakamoto), je britský kryptograf Adam Back. Na základě vlastní investigativní práce to tvrdí americký deník The New York Times (NYT). Několik indicií podle autorů jasně ukazuje na to, že Back a Nakamoto jsou stejný člověk. Jde mimo jiné o podobný odborný a osobnostní profil či totožné chyby a manýry v psaném projevu.

    Ladislav Hagara | Komentářů: 13
    8.4. 14:44 | Nová verze

    Google Chrome 147 byl prohlášen za stabilní. Nejnovější stabilní verze 147.0.7727.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře. Přehled novinek v Chrome DevTools 145 až 147 také na YouTube.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (14%)
     (24%)
    Celkem 1255 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: čtení /proc/sys/dev/cdrom/info

    Jardík avatar 12.11.2006 00:02 Jardík | skóre: 40 | blog: jarda_bloguje
    čtení /proc/sys/dev/cdrom/info
    Přečteno: 289×
    Mám takový problém. Snažím se přečíst soubor /proc/sys/dev/cdrom/info, bohužel se mi nedaří. Soubor je otevřen POSIX funkcí open() s přístupem O_RDONLY. Soubor se otevře (tj. funkce nevrátí -1). Poté v cyklu načítám bajt po bajtu (v souboru nelze seekovat a zjistit tak jeho velikost):
    while( read( fd, (void*)&bajt, 1 ) == 1 )
    {
      ....
    }
    
    Problém je v tom, že se načte pouze první znak. Pro další pak funkce vrátí 0 (ne -1, což by znamenalo chybu). Zajímalo by mě, jak takový soubor načíst.
    Věřím v jednoho Boha.

    Odpovědi

    Jardík avatar 13.11.2006 21:04 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: čtení /proc/sys/dev/cdrom/info
    Tak jsem se porozhlídnul všude možně po internetu a našel jsem jeden útržek kódu, kde na soubor v proc byly také použity fce open a read s tím rozdílem, že tam byl buffer něco přes 8000. Poprvé bylo vrácen počet přečtených bajtů a v druhé 0 (tj. EOF). Tak mě napadá, jestli se celý soubor nemusí přečíst najednou????? Nějak se mi kvůli tomu nechce prasit můj kód, takže se radši ptám. Pokud nikdo vědět nebude, tak to asi vyzkouším. Následuje výstup strace -r, kde se načte jen první znak C ze souboru. Zajímavé je, cat vypíše soubor celý (že by dostatečný buffer?). Další zarážející věcí je, že funkce getline() si klidně čte po řádcích. Jak jsem ale řekl, chtěl bych použít funkci open() a read() - kvůli jiným možnostem otevírání, než mi nabízí funkce fopen().
    0.000040 write(1, "Debug: Application constructor -"..., 40) = 40
    0.000491 write(1, "Debug: Application contructor - "..., 37) = 37
    0.000170 brk(0)                    = 0x804a000
    0.000027 brk(0x806b000)            = 0x806b000
    0.000043 open("/proc/sys/dev/cdrom/info", O_RDONLY|O_LARGEFILE) = 3
    0.000073 write(1, "File opened", 11) = 11
    0.000069 write(1, "\n", 1)         = 1
    0.000081 read(3, "C", 1)           = 1
    0.000041 write(1, "Debug: something readed\n", 24) = 24
    0.000088 read(3, "", 1)            = 0
    0.000028 write(1, "C", 1)          = 1
    0.000059 write(1, "\n", 1)         = 1
    0.000073 read(3, "", 1)            = 0
    0.000031 write(1, "Debug: Application::run() - begi"..., 35) = 35
    0.000088 close(3)                  = 0
    
    Zde je část kódu programu:
    int main( ... )
    {
    	...
    	File cdroms;
    	File stdOut;
    	stdOut.openStdOut();
    	if( cdroms.open("/proc/sys/dev/cdrom/info", fmReadOnly ) )
    	{
    		stdOut.writeLine("File opened");
    		String line;
    		while( cdroms.readLine(line) )
    		{
    			stdOut.writeLine(line);
    		}
    		cdroms.close();
    	}
    	...
    }
    
    bool File::open( const String& fileName, FileMode mode, Permission perms )
    {
    	close();
    	m_pHandle = ::open( fileName.cStr(), mode | O_LARGEFILE, (mode_t)perms );
    	return opened();
    }
    
    Int64 File::read( Byte *data, Int64 size ) const
    {
    	if( size <= 0 ) return 0;
    	if(!opened()) return -1;
    	Int64 totalReaded = 0;
    	Int64 readed = 0, toRead = 0;
    	do{
    		toRead = MIN(size-totalReaded,SSIZE_MAX);
    		readed = (Int64)::read( m_pHandle, (void*)data, (size_t)toRead );
    		if( readed == 0 ) break; //EOF
    		if( readed < 0 ) return readed; //error
    		totalReaded += readed;
    		data += readed;
    	} while(totalReaded < size);	
    	return totalReaded;
    }
    
    bool File::readLine( String& str ) const
    {
    	bool somethingReaded = false;
    	str.clear();
    	Char chr;
    	
    	if( read( (Byte*)&chr, 1 ) == 1 )
    	{
    		somethingReaded = true;
    		do{
    			if( chr == 0 ) break;
    			else if( chr == '\r' ) {
    				prevR = true;
    				break;
    			} else if( chr == '\n' ) {
    				if(prevR) {
    					prevR = false;
    					continue;
    				} else break;
    			} else {
    				prevR = false;
    				str.append(chr);
    			}
    		} while( read( (Byte*)&chr, 1 ) == 1 );
    	}
    	
    	return somethingReaded;
    }
    
    Věřím v jednoho Boha.
    Jardík avatar 13.11.2006 21:33 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: čtení /proc/sys/dev/cdrom/info
    Hmm, takže jsem se dočetl, že je to bug v kernelu: http://lkml.org/lkml/2006/10/20/121.
    Věřím v jednoho Boha.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.