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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 23
dnes 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 4
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 14
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 25
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 15
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 4
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 1
2.12. 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 773 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: cteni / zapis do souboru pro vice procesu, jazyk C

25.1.2009 20:56 ext3fs
cteni / zapis do souboru pro vice procesu, jazyk C
Přečteno: 870×

Zdravim,

 mam nasledujici dotaz. Pisu v jazyce C (pro linux) urcitou aplikaci. Je pravdepodobne, ze bude spustena vicekrat v danem case (nekolik procesu). Aplikace bude cist data ze souboru (text), ale muze obcas nastat situace, ze se v tomtez souboru provedou zmeny (pridani, nahrazeni, mazani). Zajimalo by mne, kdyz bude mit nekolik procesu tento soubor otevreno pro cteni a jiny proces otevre tentyz soubor pro zapis a provede zmeny

 

napr.: proces1 ma otevren soubor.txt pro cteni (je nastaven na pozici zacatku desateho radku), proces2 ma otevren soubor.txt pro zapis (maze desaty radek)...

 

jak se zachova proces1, ktery chce cist radek c.10,ale proces2 ho vymazal? A vymaze ho vubec?Jak mohu vedet, ktery proces dostane prioritu k provedeni sveho ukonu drive?

 

Resi tohle jadro a nebo libc automaticky a nebo se to musi v programu osetrit?

Dekuji za reakce.

 

Odpovědi

kozzi avatar 25.1.2009 21:05 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C
IMHO ti to vubec nepojede, jelikoz pokud jeden program bude mit ten soubor.txt otevren, tak ten druhej pri pokusu o otevreni vrati chybovy stav.
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
kozzi avatar 25.1.2009 21:10 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C
kecam
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
26.1.2009 07:01 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C
Takhle to dělá jen bill :-) (ano i tam jde nastavit sdílení, etc)

Ad původní dotaz: pokud to aplikace č.1 přečte dřív, než to aplikace č.2 zapsala, tak bude mít původní data, v opačném případě nová data. Jak je popsáno v jiných zápiscích, jde to řešit zámky, které ale nekontroluje libc ani jádro, nýbrž Vaše aplikace. Případně si na to můžete najít nějakou již hotovou knihovnu.

Jinak: nevím jaké povahy jsou vaše řádky, práce s variabilní délkou řádku je už sama o sobě dost opruz, nemluvě o sdílení. Nechcete spíš použít nějakou databázi, která už všechno umí, např. SQLite?
In Ada the typical infinite loop would normally be terminated by detonation.
26.1.2009 07:27 ext3fs
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C

Potrebuji to mit prave v  textovem souboru. Jedna se o aplikaci (extreni content filter pro postfix) k filtrovani a kontrole posty.

Jedine co bude v txt souboru je seznam platnych emailovych adres v me domene.

adresa1@domena.cz

adresa2@domena.cz

. . .

Takze se da ocekavat, ze se tento soubor bude menit jen velmi malo (nova adresa / smazani stare adresy), nicmene

muze ke zmene dojit kdyz s nim bude zrovna jiny proces pracovat. Textovy soubor volim predevsim pro jednoduchost,

moznost editace / zobrazeni v jakemkoli editoru, atd.

26.1.2009 10:22 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C
Tak si to skopírujte vedle, tam upravte a pak nový soubor přejmenujte na místo starého. Tím budou mít aplikace před změnou data před změnou a po změně nová data, vše v konzistentním stavu.
In Ada the typical infinite loop would normally be terminated by detonation.
Fuky avatar 26.1.2009 11:47 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C
To je zásadní chyba, tím nezajistí konzistentní data.
26.1.2009 12:13 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C
Proč myslíte?
In Ada the typical infinite loop would normally be terminated by detonation.
Fuky avatar 26.1.2009 13:31 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C

Specifikaci sice vyžaduje, aby knihovní fce rename() byla atomická, ale nejsem si jistý zda-li to opravdu platí a hlavně jestli pro všechny filesystémy.

Když pomineme Linux, tak se najde určitě ještě spousta Unixů, které s tím mají problém On how rename is broken in Mac OS X.

Raději bych opravdu zvolil zamykací soubor.

26.1.2009 14:48 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C
Konzistenci mít bude, ale nedozví se o změnách. Protože pokud ten soubor nezavře a neotevře znovu, bude pořád pracovat s tím původním (na který už nebude ukazovat adresářová položka), ne s tou upravenou a přejmenovanou kopií.
26.1.2009 15:57 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C
To je pravda, ale z povahy zadání jsem předpokládal, že se tak stane. Buď ten mailový démon načte tu konfiguraci právě jednou a pak se stejně musí restartovat; nebo to čte při každém mailu a pak to funguje "samo". Ale nepředpokládám, že by udělal něco ve stylu: 1. otevřít, 2. přečíst, 3. seek na začátek, 4. přečíst...
In Ada the typical infinite loop would normally be terminated by detonation.
26.1.2009 16:11 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C
Tradiční řešení je načíst jednou na začátku a pak vždy jako reakci na HUP. Nebo by šlo využít některého z notify mechanismů.
26.1.2009 16:38 ext3fs
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C

Presne tak to delam. Ale i tak tady "velmi mala" sance je, ze program nacte neaktualni data.

26.1.2009 16:35 ext3fs
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C

Momentalni koncepce programu je takova, ze se spousti pro kazdy mail solo.

Premyslel jsem napsat to jako klient - server aplikaci, kdy serverova cast by drzela v

pameti konfiguraci a data a klient posilal veci ke zpracovani serveru. Tim by bylo

vse vyreseno,ale casova narocnost a vetsi komplikovanost (i vice moznych chyb) mne od toho odradila.

 

27.1.2009 12:17 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C
Ono to zase tak složité není, jde jen o to si to jednou napsat. Jak už to jednou máte, už to můžete používat pro spoustu dalších aplikací.
26.1.2009 12:25 dustin | skóre: 60 | blog: dustin
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C

A proč by externí filtr nemohl číst seznam adres z DB místo ze souboru?

26.1.2009 13:05 ext3fs
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C

Protoze proti DB (MySQL) se overuje pop3/smtp, s toutez DB pracuje i maildrop.

Nedovedu presne odhadnout jeji zatizeni (obcas v logu narazim na hlasku "Prilis mnoho spojeni." limit

je nastaven myslim na 200) takze dalsi komunikace s DB by znamenalo jeste vetsi zatez DB. Ale mozna

to bude nakonec jedine rozumne reseni.

26.1.2009 13:24 dustin | skóre: 60 | blog: dustin
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C

Toho bych se nebál, mysql je pro takto jednoduché dotazy v pohodě. Režie bude minimální. Určitě spolehlivější, než se mořit se zamykáním souboru. Jedině snad opakované připojování do DB při každém běhu skriptu - možná popřemýšlet o nějakém serverovém poolu konexí, ale to už je velká komplikace.

Fuky avatar 25.1.2009 22:00 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C

Musíš vyřešit spolupráci mezi procesy. Více informací nalezneš v knize Linux - Začínáme programovat, překlad 4. vydání (Neil Matthew, Richard Stones), originál v PDF druhého vydání [2,8MB]. Je tam pěkně popsané využívání souboru "zámku", který je vytvořen jedinou atomickou operací tj. flag O_EXCL a poté následuje vysvětlení a ukázky jak zamykat jen část souboru. Začíná to na straně 215. ;-)

26.1.2009 03:59 luky
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C
Ono to automaticky dost dobre ani nejde, musite si to osetrit sam podle vasich potreb.
26.1.2009 07:46 cronin | skóre: 48
Rozbalit Rozbalit vše Re: cteni / zapis do souboru pro vice procesu, jazyk C
Odporucam data storage - v tomto priapade subor - zakryt nejakou sluzbou poskytujucou pristup k v nom leziacim udajom. Ale ... neobjavujeme opat raz Ameriku - v tomto pripade databazu?

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.