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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.