Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       msync - sincronizează un fișier cu o hartă din memorie

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #include <sys/mman.h>

       int msync(void addr[.length], size_t length, int flags);

DESCRIERE

       msync()  trimite  înapoi în sistemul de fișiere modificările aduse copiei din nucleu a unui fișier care a
       fost cartografiat în memorie utilizând mmap(2).  Fără utilizarea acestui apel, nu există  nicio  garanție
       că  modificările  sunt  scrise  înapoi înainte de apelarea munmap(2).  Pentru a fi mai precis, partea din
       fișier care corespunde zonei de memorie care începe la addr și are lungimea length este actualizată.

       Argumentul flags trebuie să specifice exact unul dintre MS_ASYNC și MS_SYNC  și  poate  include  în  plus
       bitul MS_INVALIDATE.  Acești biți au următoarele semnificații:

       MS_ASYNC
              Precizează că o actualizare este planificată, dar apelul se întoarce imediat.

       MS_SYNC
              Solicită o actualizare și așteaptă ca aceasta să fie finalizată.

       MS_INVALIDATE
              Solicită  invalidarea  altor  hărți  ale  aceluiași  fișier  (astfel  încât  acestea  să  poată fi
              actualizate cu valorile noi care tocmai au fost scrise).

VALOAREA RETURNATĂ

       În caz de succes, se returnează zero.  În caz de eroare, se returnează -1,  iar  errno  este  configurată
       pentru a indica eroarea.

ERORI

       EBUSY  MS_INVALIDATE  a  fost  specificat  în  flags  și există o blocare a memoriei pentru intervalul de
              adrese specificat.

       EINVAL addr nu este un multiplu de PAGESIZE; sau orice alt bit decât MS_ASYNC | MS_INVALIDATE  |  MS_SYNC
              este definit în flags; sau atât MS_SYNC cât și MS_ASYNC sunt definite în flags.

       ENOMEM Memoria indicată (sau o parte a acesteia) nu a fost cartografiată.

STANDARDE

       POSIX.1-2001, POSIX.1-2008.

       Acest  apel  a  fost  introdus  în Linux 1.3.21, iar atunci se folosea EFAULT în loc de ENOMEM.  În Linux
       2.4.19, aceasta a fost schimbată cu valoarea POSIX ENOMEM.

       Pe  sistemele   POSIX   pe   care   este   disponibil   msync(),   atât   _POSIX_MAPPED_FILES,   cât   și
       _POSIX_SYNCHRONIZED_IO  sunt  definite  în  <unistd.h>  la  o  valoare  mai mare decât 0. (A se vedea, de
       asemenea, sysconf(3).)

NOTE

       În conformitate cu POSIX, fie MS_SYNC, fie MS_ASYNC trebuie să fie specificat în flags  și,  într-adevăr,
       dacă  nu  se  include  unul  dintre aceste fanioane, msync() va eșua pe unele sisteme.  Cu toate acestea,
       Linux permite un apel la msync() care nu specifică niciunul dintre acești indicatori, cu o semantică care
       este (în prezent) echivalentă cu specificarea MS_ASYNC.  (Începând cu Linux  2.6.19,  MS_ASYNC  este,  de
       fapt,  o  non-opțiune,  deoarece nucleul urmărește în mod corespunzător paginile modificate și le elimină
       din memorie în funcție de necesități).  În pofida comportamentului Linux,  aplicațiile  portabile  și  cu
       perspective de viitor ar trebui să se asigure că specifică fie MS_SYNC, fie MS_ASYNC în flags.

CONSULTAȚI ȘI

       mmap(2)

       B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128–129 și 389–391.

TRADUCERE

       Traducerea    în   limba   română   a   acestui   manual   a   fost   creată   de   Remus-Gabriel   Chelu
       <remusgabriel.chelu@disroot.org>

       Această traducere este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3  sau  o
       versiune   ulterioară   cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se  asumă  Nicio
       RESPONSABILITATE.

       Dacă găsiți erori în traducerea acestui manual, vă rugăm să  trimiteți  un  e-mail  la  translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.03                  5 februarie 2023                                        msync(2)