Fråga om hantering av filer i C och Linux/Windows.

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
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.

Inlägg av lillahuset »

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. :)
mounte
Inlägg: 204
Blev medlem: 14 november 2010, 13:15:00
Ort: Sandviken

Re: Fråga om hantering av filer i C och Linux/Windows.

Inlägg av mounte »

Hur ofta skrivs det till loggen?
Hur mycket data skrivs vid varje tillfälle till filen?
Användarvisningsbild
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.

Inlägg av lillahuset »

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.
mounte
Inlägg: 204
Blev medlem: 14 november 2010, 13:15:00
Ort: Sandviken

Re: Fråga om hantering av filer i C och Linux/Windows.

Inlägg av mounte »

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.
Användarvisningsbild
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.

Inlägg av lillahuset »

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. :)
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45291
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Fråga om hantering av filer i C och Linux/Windows.

Inlägg av TomasL »

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.
Användarvisningsbild
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.

Inlägg av lillahuset »

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..........
MiaM
Inlägg: 9975
Blev medlem: 6 maj 2009, 22:19:19

Re: Fråga om hantering av filer i C och Linux/Windows.

Inlägg av MiaM »

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.
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.

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.
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?
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.
Användarvisningsbild
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.

Inlägg av lillahuset »

Det här får jag fundera på. Tack iallafall.
Användarvisningsbild
swesysmgr
Inlägg: 14176
Blev medlem: 28 mars 2009, 06:56:43
Ort: Göteborg

Re: Fråga om hantering av filer i C och Linux/Windows.

Inlägg av swesysmgr »

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?
Användarvisningsbild
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.

Inlägg av lillahuset »

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.
Användarvisningsbild
swesysmgr
Inlägg: 14176
Blev medlem: 28 mars 2009, 06:56:43
Ort: Göteborg

Re: Fråga om hantering av filer i C och Linux/Windows.

Inlägg av swesysmgr »

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å?
Användarvisningsbild
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.

Inlägg av lillahuset »

Då träffar förmodligen skiten fläkten. :)
Jag ska faktiskt ta och testa vid tillfälle. Av ren nyfikenhet.
Nerre
Inlägg: 26705
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Fråga om hantering av filer i C och Linux/Windows.

Inlägg av Nerre »

Jag antar att programmet öppnar filen för append om den finns, skapar den om den inte finns. (Det vore ju mest logiskt.)
Användarvisningsbild
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.

Inlägg av lillahuset »

Men det lär väl inte lyckas att öppna för append om filen är skrivskyddad?
Skriv svar