Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-06-2008, 16:18   #1
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
[c++] lock su file

Devo fare un programmino che va a lavorare su alcuni client(sia win che linux) in rete su file condivisi. Quello che occorre è che quando un' istanza del programma ha acquisito un file in scrittura gli altri ne possono acquisire solo la lettura...come avviene per office sostanzialmente.
Devo gestire il lock manualmente oppure il sistema lo fa aggratis..(non vorrei dire una cazzata ma mi pare di ricordare che windows acquisendo la scrittura attivi per gli altri la sola lettura)...su linux non so..
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 10:41   #2
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Linux da questo punto di vista è un po' un escremento: è possibile anche cancellare un file aperto da un processo o addirittura un programma in esecuzione. su Windows basta che regoli i parametri della CreateFile: per limitare i permessi di condivisione alla lettura specifica FILE_SHARE_READ, per impedire anche la lettura non specificare niente; comunque è sufficiente che eviti di specificare FILE_SHARE_WRITE e FILE_SHARE_DELETE.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 11:58   #3
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
quini su linux, devo provvedere da me a proteggere gli accessi conocorrenti alla risorsa?
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 12:00   #4
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
Iscritto dal: Apr 2006
Messaggi: 22462
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
quini su linux, devo provvedere da me a proteggere gli accessi conocorrenti alla risorsa?
direi proprio di si
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 13:03   #5
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
quini su linux, devo provvedere da me a proteggere gli accessi conocorrenti alla risorsa?
e come faresti scusa?

se non si può non si può; è su Windows che devi provvedere tu (passando i flag giusti al terzo parametro della CreateFile), su Linux ti attacchi
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 13:33   #6
arara
Senior Member
 
L'Avatar di arara
 
Iscritto dal: Aug 2007
Messaggi: 1270
su Linux ci sarebbe una sorta di mandatory locking:
http://enpc3240.eas.asu.edu/lxr/linu.../mandatory.txt
arara è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 15:44   #7
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da 71104 Guarda i messaggi
e come faresti scusa?

se non si può non si può; è su Windows che devi provvedere tu (passando i flag giusti al terzo parametro della CreateFile), su Linux ti attacchi
è possibile in linux controllare se un file è già in uso?
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 16:43   #8
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
è possibile in linux controllare se un file è già in uso?
non che mi risulti...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 16:53   #9
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da 71104 Guarda i messaggi
non che mi risulti...
xkè se fosse possibile, mi basterebbe regolare le azioni del processo in base all' esito del controllo..
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 17:21   #10
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
xkè se fosse possibile, mi basterebbe regolare le azioni del processo in base all' esito del controllo..
se ti va bene che gli altri programmi possano scrivere sul file e che solo il tuo lavori sul lock allora basta che usi tecniche di sincronizzazione; ma anche là ci sono un sacco di problemi perché su Linux due processi possono usare lo stesso semaforo solo se uno è padre dell'altro, altrimenti devi usare una FIFO e realizzare su di essa un protocollo di sincronizzazione (e giù di pippe mentali sulle operazioni atomiche e non).

guarda se puoi usare le features descritte nel link postato da arara, che mi pare di capire che siano le analoghe di LockFile; non credo che questo sistema però impedisca la cancellazione.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 17:39   #11
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da 71104 Guarda i messaggi
se ti va bene che gli altri programmi possano scrivere sul file e che solo il tuo lavori sul lock allora basta che usi tecniche di sincronizzazione; ma anche là ci sono un sacco di problemi perché su Linux due processi possono usare lo stesso semaforo solo se uno è padre dell'altro, altrimenti devi usare una FIFO e realizzare su di essa un protocollo di sincronizzazione (e giù di pippe mentali sulle operazioni atomiche e non).

guarda se puoi usare le features descritte nel link postato da arara, che mi pare di capire che siano le analoghe di LockFile; non credo che questo sistema però impedisca la cancellazione.
I file sarebbero dedicati solo per quel programmi quindi il problema di modifiche esterne sarabbe minimo.
Avevo inizialmente pensato proprio ad un sistema protetto con monitor, ma come giustamente dicevi bisogna sbattersi molto per realizzarlo...Inoltre considera che le varie istanze del programma girerebbero su client diversi all' interno della rete lan...quindi credo che sarebbe in ogni caso impossibile sincronizzarli con dei semafori(almeno credo).
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 18:40   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
I file sarebbero dedicati solo per quel programmi quindi il problema di modifiche esterne sarabbe minimo.
se puoi trascurare il problema di interferenze esterne allora direi che puoi tranquillamente adoperare una soluzione basata su locking mandatorio su entrambe le piattaforme, la quale tra l'altro su Windows ti da' il vantaggio di poter attendere che un file venga sbloccato (vedi LockFileEx).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 19:02   #13
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da 71104 Guarda i messaggi
se puoi trascurare il problema di interferenze esterne allora direi che puoi tranquillamente adoperare una soluzione basata su locking mandatorio su entrambe le piattaforme, la quale tra l'altro su Windows ti da' il vantaggio di poter attendere che un file venga sbloccato (vedi LockFileEx).
ma acquisendo il lock il file non viene destinato al solo chiamante ed escluso agli altri (quindi eventualmente altre istanze del programma ma ipoteticamente anche altri programmi) oppure funziona nel senso in cui nei metodi del mio programma, prima di utilizzare un file devo far acquisire il lock ma la risorsa resta esternamente libera?

Ultima modifica di nuovoUtente86 : 08-06-2008 alle 19:06.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2008, 11:12   #14
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
71104 continua a presumere...
Quote:
Originariamente inviato da 71104 Guarda i messaggi
Linux da questo punto di vista è un po' un escremento: è possibile anche cancellare un file aperto da un processo o addirittura un programma in esecuzione.
Non cancellare, ma scollegare.
Un file non viene cancellato se lo "scolleghi", ma quando non ha più riferimenti (l'apertura di un file implica l'acquisizione di un riferimento; il nome sul file system è un "riferimento" come gli altri)

Quote:
su Windows basta che regoli i parametri della CreateFile: per limitare i permessi di condivisione alla lettura specifica FILE_SHARE_READ, per impedire anche la lettura non specificare niente; comunque è sufficiente che eviti di specificare FILE_SHARE_WRITE e FILE_SHARE_DELETE.
Windows ha di comodo la possibilità di specificare il lock all'atto dell'apertura del file

Quote:
Originariamente inviato da 71104 Guarda i messaggi
se non si può non si può; è su Windows che devi provvedere tu (passando i flag giusti al terzo parametro della CreateFile), su Linux ti attacchi
Ite missa est...

Quote:
Originariamente inviato da 71104 Guarda i messaggi
se puoi trascurare il problema di interferenze esterne allora direi che puoi tranquillamente adoperare una soluzione basata su locking mandatorio su entrambe le piattaforme, la quale tra l'altro su Windows ti da' il vantaggio di poter attendere che un file venga sbloccato (vedi LockFileEx).
fcntl(F_SETLKW)

Quote:
Originariamente inviato da 71104 Guarda i messaggi
su Linux due processi possono usare lo stesso semaforo solo se uno è padre dell'altro
Dove avresti letto una castroneria simile?

Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
è possibile in linux controllare se un file è già in uso?
fuser riporta gli utilizzatori di un file, ma nel tuo caso sarebbe meglio usare i lock -- se non ricordo male samba emula i lock di windows con gli advisory lock di linux. Se il tuo problema è gestire i lock tra le macchine windows _e_ le macchine linux, dovresti fare così.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2008, 11:24   #15
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
infatti il questito che mi ponevo e': se un client windows ha aperto un file, come gli sincronizza una richiesta di accesso allo stesso file da un client linux?
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2008, 11:32   #16
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
infatti il questito che mi ponevo e': se un client windows ha aperto un file, come gli sincronizza una richiesta di accesso allo stesso file da un client linux?
Di default samba dovrebbe usare gli advisory lock, quindi un client linux può interagire con la stessa tecnica se opera direttamente sul file system.
Nota che per i programmi che non usano i lock, puoi usare l'utility flock (v. man flock) per effettuare il lock in loro vece.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2008, 13:55   #17
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
La situazione che potrebbe verificarsi è questa:

-Il file risiede su una macchina windows(ma potrebbe essere linux)
-Un client Linux accede dalla Lan al file e dovrebbe acquisirne tutti i privileggi in quanto la risorsa è libera.
-Un client windows accede al file, ma ora dovrebbe essere limitato alla sola lettura....

Come sfrutto i lock per fare ciò...avendo sistemi diversi e la lan di mezzo.?
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2008, 14:15   #18
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
-Un client Linux accede dalla Lan al file e dovrebbe acquisirne tutti i privileggi in quanto la risorsa è libera.
-Un client windows accede al file, ma ora dovrebbe essere limitato alla sola lettura....
Questi due punti non sono compatibili. Se un client ha pieni privilegi sul file, il secondo non può accedere, neanche in sola lettura.
Sotto linux si può aggirare questo limite se usi gli advisory lock (non i mandatory!) e ignori l'impossibilità di prendere il write lock. Ma sta al programma comportarsi così, ed è questionabile se è un comportamento corretto.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2008, 14:22   #19
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da ilsensine Guarda i messaggi
Questi due punti non sono compatibili. Se un client ha pieni privilegi sul file, il secondo non può accedere, neanche in sola lettura.
Sotto linux si può aggirare questo limite se usi gli advisory lock (non i mandatory!) e ignori l'impossibilità di prendere il write lock. Ma sta al programma comportarsi così, ed è questionabile se è un comportamento corretto.
Scusa sotto linux...un processo non puo accedere ad un file anche se utilizzato da un altro processo?
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2008, 14:35   #20
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Sì che può. Non puoi però mettere un wrlock su un file, e sperare di acquisirne contemporaneamente un rdlock. Da quello che descrivi, è questo che ti serve.
Qui windows è un pò più flessibile, ti consente di aprire un file in scrittura consentendo ulteriori aperture in lettura ma non in scrittura. Sotto linux questo richiede una maggiore cooperazione dei programmi.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
iPhone Fold: scorte limitate al lancio m...
OpenAI porterà la pubblicità in ChatGPT ...
TSMC aumenterà ancora i prezzi: nel 2026...
Marvel pubblica anche il secondo teaser ...
Nuovo accordo tra xAI e il Pentagono: l'...
La famiglia Xiaomi 17 sta per registrare...
Nuove auto elettriche che vedremo sul me...
E-bike illegali, a Verona il più ...
Quali sono i giochi più venduti su Steam...
HONOR sta per lanciare un nuovo smartpho...
Jared Isaacman sarà alla guida de...
Il Tesla Cybertruck non arriverà ...
Xiaomi Watch 5 è ufficiale: architettura...
CD Projekt vende GOG: il co-fondatore Mi...
Il meglio di Amazon in 26 prodotti, aggi...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:20.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v