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