msync(2) System Calls Manual msync(2) NUME msync - sincronizeaza un fiier cu o harta din memorie BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include int msync(size_t length; void addr[length], size_t length, int flags); DESCRIERE msync() trimite inapoi in sistemul de fiiere modificarile aduse copiei din nucleu a unui fiier care a fost cartografiat in memorie utilizand mmap(2). Fara utilizarea acestui apel, nu exista nicio garanie ca modificarile sunt scrise inapoi inainte de apelarea munmap(2). Pentru a fi mai precis, partea din fiier care corespunde zonei de memorie care incepe la addr i are lungimea length este actualizata. Argumentul flags trebuie sa specifice exact unul dintre MS_ASYNC i MS_SYNC i poate include in plus bitul MS_INVALIDATE. Aceti bii au urmatoarele semnificaii: MS_ASYNC Precizeaza ca o actualizare este planificata, dar apelul se intoarce imediat. MS_SYNC Solicita o actualizare i ateapta ca aceasta sa fie finalizata. MS_INVALIDATE Solicita invalidarea altor hari ale aceluiai fiier (astfel incat acestea sa poata fi actualizate cu valorile noi care tocmai au fost scrise). VALOAREA RETURNATA In caz de succes, se returneaza zero. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EBUSY MS_INVALIDATE a fost specificat in flags i exista o blocare a memoriei pentru intervalul de adrese specificat. EINVAL addr nu este un multiplu de PAGESIZE; sau orice alt bit decat MS_ASYNC | MS_INVALIDATE | MS_SYNC este definit in flags; sau atat MS_SYNC cat i MS_ASYNC sunt definite in flags. ENOMEM Memoria indicata (sau o parte a acesteia) nu a fost cartografiata. VERSIUNI In conformitate cu POSIX, fie MS_SYNC, fie MS_ASYNC trebuie sa fie specificat in flags i, intr-adevar, daca nu se include unul dintre aceste fanioane, msync() va eua pe unele sisteme. Cu toate acestea, Linux permite un apel la msync() care nu specifica niciunul dintre aceti indicatori, cu o semantica care este (in prezent) echivalenta cu specificarea MS_ASYNC. (Incepand cu Linux 2.6.19, MS_ASYNC este, de fapt, o non-opiune, deoarece nucleul urmarete in mod corespunzator paginile modificate i le elimina din memorie in funcie de necesitai). In pofida comportamentului Linux, aplicaiile portabile i cu perspective de viitor ar trebui sa se asigure ca specifica fie MS_SYNC, fie MS_ASYNC in flags. STANDARDE POSIX.1-2024. ISTORIC SUSv1, POSIX.1-1996. Acest apel a fost introdus in Linux 1.3.21, iar atunci se folosea EFAULT in loc de ENOMEM. In Linux 2.4.19, aceasta a fost schimbata cu valoarea POSIX ENOMEM. Pe sistemele POSIX pe care este disponibil msync(), atat _POSIX_MAPPED_FILES, cat i _POSIX_SYNCHRONIZED_IO sunt definite in la o valoare mai mare decat 0. (A se vedea, de asemenea, sysconf(3).) CONSULTAI I mmap(2) B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 i 389-391. TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.18 11 februarie 2026 msync(2)