write() z vice procesu do jednoho souboru

A young dragon glip na cyber-wizard.com
Úterý Říjen 5 15:04:45 CEST 1999


> Jo. A muj zaver byl, ze to tak uplne jiste neni. Myslim, ze jsem jaderne
> experty zadal o jejich nazor, ale nikdo se nevyjadril. :P
Zrovna za experta sa nepovazujem, ale v jadre (2.2.10) som sa docital
toto:

fs/read_write.c - funkcia sys_write :
        down(&inode->i_sem);
        ret = write(file, buf, count, &file->f_pos);
        up(&inode->i_sem);
Semafory su snad dostatocna zaruka, aby v rutine write na dotycnom inode
bol len jeden proces. Inak vo write je file->f_op->write.

fs/ext2/file.c - funkcia ext2_file_write :
        if (filp->f_flags & O_APPEND)
                pos = inode->i_size;

	... (okrem ineho samotny zapis) ...

        if (pos > inode->i_size)
                inode->i_size = pos;
Teda ak je subor otvorny s O_APPEND, pred samotnym zapisom sa pozicia
nastavi na koniec a po zapise sa updatne.

Nieco podobne je tam aj pre minix, atd. Jedine pri NFS vraj (tvrdi man)
moze dojst k strate dat.

--
                              .  ,           Glip
                            . ,`o--.                                  --
    ____.....------.'      .,' ,,~''   `,------.....____
''''`    `---.:: ,':       ; ,'         ;`. ;;.---'    '````
            `   `:__`-._   `.`.,    _,-'__;'   '  SysAdmin TEMPEST s.r.o. 
                 `  `---`---'`'`---'---'  '     Phone: +421-7-69254111
glip na cyber-wizard.com_____ \`--'/`,,___________http://glip.planet.sk/
                          ```  '''



Další informace o konferenci Linux