Voor een computing grid gebruiken wij het network filesystem om te checken of een bepaalde job al output heeft gegenereerd. Een job slaat zijn output op met een tijdelijke naam, en hernoemt de output file vervolgens. De code is geschreven in Matlab, en nu blijkt dat Matlab's rename() geen atomic operatie is; m.a.w. de check kan misgaan.
Als alternatief wil ik nu het Unix rename commando gebruiken. Dat lukt prima, maar nu las ik op verschillende plekken dat het standaard rename-commando in Unix ook niet atomic is (en dat blijkt wel, want nog steeds gaan er soms dingen mis). Als ik op de command line "man rename" typ krijg ik de documentatie over rename(1). Ergens anders op internet vond ik dat rename(2) *wel* atomic is, dus idealiter zou ik die gebruiken.
Echter, nu komt mijn vraag: hoe roep ik rename(2) aan vanaf de command line? En meer in het algemeen: wat is dat nou precies, die verschillende versies van hetzelfde commando? Ik kon hier vreemd genoeg geen documentatie over vinden.
Als alternatief wil ik nu het Unix rename commando gebruiken. Dat lukt prima, maar nu las ik op verschillende plekken dat het standaard rename-commando in Unix ook niet atomic is (en dat blijkt wel, want nog steeds gaan er soms dingen mis). Als ik op de command line "man rename" typ krijg ik de documentatie over rename(1). Ergens anders op internet vond ik dat rename(2) *wel* atomic is, dus idealiter zou ik die gebruiken.
Echter, nu komt mijn vraag: hoe roep ik rename(2) aan vanaf de command line? En meer in het algemeen: wat is dat nou precies, die verschillende versies van hetzelfde commando? Ik kon hier vreemd genoeg geen documentatie over vinden.