Fråga om hantering av filer i C och Linux/Windows.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Fråga om hantering av filer i C och Linux/Windows.
OK, stort tack för info jag hoppas slippa använda. Portning mellan olika OS tenderar att vara relativt plågsamt. Men som sagt, skit händer.
Re: Fråga om hantering av filer i C och Linux/Windows.
Hur ofta skrivs det till loggen?
Hur mycket data skrivs vid varje tillfälle till filen?
Hur mycket data skrivs vid varje tillfälle till filen?
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Fråga om hantering av filer i C och Linux/Windows.
Hej Sandviken!
Ingen vet hur ofta det skrivs eller hur mycket. Inställningarna ger möjlighet att spara stora mängder data vid liten förändring. Tänk spara när solen börjar lysa. Eller något börjar skaka.
Ingen vet hur ofta det skrivs eller hur mycket. Inställningarna ger möjlighet att spara stora mängder data vid liten förändring. Tänk spara när solen börjar lysa. Eller något börjar skaka.
Re: Fråga om hantering av filer i C och Linux/Windows.
Okej, inte ens något hum att max xMB skrivs i max yHz frekvens?
Det jag funderar över utöver de möjliga lösningar som redan diskuteras är att skriva ett tunt filssytemslager med FUSE som aggerar transparant på alla operationer sånär som vidarebefodrar den data ni nu vill skyffla vidare... det enda som krävs är att ni kan konfigurera vart loggfilerna ska skrivas.
Andra tanken som slog mig för att lista ut när ni annars kan knycka ny info från loggen är att använda fanotify/fsnotify/inotify för att få event när något faktiskt skrivits.
Det var min 50öring det.
Det jag funderar över utöver de möjliga lösningar som redan diskuteras är att skriva ett tunt filssytemslager med FUSE som aggerar transparant på alla operationer sånär som vidarebefodrar den data ni nu vill skyffla vidare... det enda som krävs är att ni kan konfigurera vart loggfilerna ska skrivas.
Andra tanken som slog mig för att lista ut när ni annars kan knycka ny info från loggen är att använda fanotify/fsnotify/inotify för att få event när något faktiskt skrivits.
Det var min 50öring det.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Fråga om hantering av filer i C och Linux/Windows.
mounte: Ledsen för dålig input.
Ingen vet hur ofta eller när men mängden handlar nästan säkert om mindre än några MB per skrivning. Problemet är att ingen vet vad användarna väljer. De kan ställa in att spara "allt" varje timme och massor av data om det uppstår fel.
Fick senast idag ett mail från en kund som vill kunna spara "allt" var tionde sekund. Det blir intressant när "allt" kan innebära över 20MB. På ett SD-kort.
Det verkar som om strategin att byta namn på filen och sedan zippa den fungerar. Men 100% säker är jag inte. Jag vet ju inte om jag har haft några "kollisioner". Även om jag testat med ett program som skriver data så fort som möjligt och har sett att inga data förloras.
Problemet, som jag ser det, är inte att veta om det skrivits något. Problemet är att veta om man kommer att drabbas av att programmet som genererar data plötsligt vill generera nya data.
Det får duga tills vidare. Jag upplever det som att jag är ute på djupt vatten men har gjort så gott jag kunnat. Input uppskattas.
Ingen vet hur ofta eller när men mängden handlar nästan säkert om mindre än några MB per skrivning. Problemet är att ingen vet vad användarna väljer. De kan ställa in att spara "allt" varje timme och massor av data om det uppstår fel.
Fick senast idag ett mail från en kund som vill kunna spara "allt" var tionde sekund. Det blir intressant när "allt" kan innebära över 20MB. På ett SD-kort.
Det verkar som om strategin att byta namn på filen och sedan zippa den fungerar. Men 100% säker är jag inte. Jag vet ju inte om jag har haft några "kollisioner". Även om jag testat med ett program som skriver data så fort som möjligt och har sett att inga data förloras.
Problemet, som jag ser det, är inte att veta om det skrivits något. Problemet är att veta om man kommer att drabbas av att programmet som genererar data plötsligt vill generera nya data.
Det får duga tills vidare. Jag upplever det som att jag är ute på djupt vatten men har gjort så gott jag kunnat. Input uppskattas.
Re: Fråga om hantering av filer i C och Linux/Windows.
Det bästa vore ju om programmet ändras så att det gör nya filer när de gamla blir för stora eller för gamla.
Så gjorde jag när jag behövde en loggnings app.
Så gjorde jag när jag behövde en loggnings app.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Fråga om hantering av filer i C och Linux/Windows.
Det bästa, i mina ögon, vore om loggningsfunktionen låste filerna vid uppdatering och respekterade låsning gjord vid komprimering. Vilket vi skulle (troligen) kunna tvinga igenom men inte känner att vi har ork till just nu.
Edit: Jo vi har diskuterat din lösning men..........
Edit: Jo vi har diskuterat din lösning men..........
Re: Fråga om hantering av filer i C och Linux/Windows.
Om det inte är bråttom att hantera datan (t.ex. att du vill köra komprimering på datan) så kan du döpa om filen och sen vänta på att loggskrivarjoxet skapat en ny fil med det ordinarie namnet. När den nya filen med ordinarie namn skapats så vet du helt säkert att loggskrivargrejen släppt den gamla filen. Men detta förutsätter att det garanterat bara är en enda process som skriver till filen.lillahuset skrev:För Linux verkar det vara en fullt fungerande och enkel lösning att döpa om filen och vänta tills det inte kommer mer data till filen innan man hanterar den.
För att veta om något skrivits till en ny fil med ordinarie namn så kanske det är lämpligt att göra touch för att skapa en tomfil och sedan använda Inotofy.
Det är helt oroligt att det inte finns elegantare lösningar på detta.
Oavsett om du kör Windows eller Linux så kommer det alltid vara operativsystemets API:er och inte det specifika filsystemet på disk som avgör hur detta fungerar. D.v.s. om du kör en ext2/3/4-filssytemdriver i Windows så kommer det se ut likadant som NTFS i Windows, medan om du mountar en NTFS-partition i Linux så kommer det se likadant ut som om du i Linux kör på en ext2/3/4-partition.lillahuset skrev:Och det är för mig en tilltalande egenskap.
Men hur är det i Windows? Om (han däruppe förbjude) det kommer krav på portning till Windows. Hur ser NTFS på filer? Som inoder (pekare till beskrivningar av filer) eller som något med ett specifikt namn?
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Fråga om hantering av filer i C och Linux/Windows.
Det här får jag fundera på. Tack iallafall.
Re: Fråga om hantering av filer i C och Linux/Windows.
Om du sätter Read only flaggan på filen från ditt program, hur reagerar det andra programmet då? Skapar det snällt en ny fil då borde det räcka?
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Fråga om hantering av filer i C och Linux/Windows.
Jag har inte testat. Men ett problem är att det andra programmet rimligen inte kan skapa en ny fil med samma namn om den gamla filen är skrivskyddad.
Re: Fråga om hantering av filer i C och Linux/Windows.
Det gamla programmet skapar alltså alltid en ny fil med samma hårdkodade filnamn? Om programmet startar en dag och det finns en fil med default-namnet redan som programmets användare inte har behörighet till, vad händer då?
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Fråga om hantering av filer i C och Linux/Windows.
Då träffar förmodligen skiten fläkten.
Jag ska faktiskt ta och testa vid tillfälle. Av ren nyfikenhet.
Jag ska faktiskt ta och testa vid tillfälle. Av ren nyfikenhet.
Re: Fråga om hantering av filer i C och Linux/Windows.
Jag antar att programmet öppnar filen för append om den finns, skapar den om den inte finns. (Det vore ju mest logiskt.)
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Fråga om hantering av filer i C och Linux/Windows.
Men det lär väl inte lyckas att öppna för append om filen är skrivskyddad?