
рд╣рд╛рдп, рд╣рдмреНрд░реЛрдЬрд╝рд┐рддреЗрд▓реА! рд╣рдордиреЗ рдорд╛рдЗрдХрд▓ рдХреЗрд░рд┐рд╕реНрдХ рдХреА рдкреБрд╕реНрддрдХ
"рд▓рд┐рдирдХреНрд╕ рдПрдкреАрдЖрдИ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦрд╛ рдерд╛
ред рд╡реНрдпрд╛рдкрдХ рдЧрд╛рдЗрдб ред
тАЭ рдЕрдм рд╣рдордиреЗ "рдХрд░реНрдирд▓ рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ I / O рдмрдлрд░рд┐рдВрдЧ рдкреНрд░рдмрдВрдзрд┐рдд" рдкреБрд╕реНрддрдХ рдХрд╛ рдПрдХ рдЕрдВрд╢ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИред
рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рдмрдлрд░ рдореЗрдореЛрд░реА рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓реЙрдЧрд┐рдВрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди), рдпрд╣ рдЧрд╛рд░рдВрдЯреА рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбрд┐рд╕реНрдХ рдХреИрд╢ рдХреЗ рд▓рд┐рдП)ред
рдХрд░реНрдиреЗрд▓ рдмрдлрд░рд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, SUSv3 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрдИ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╕рд╛рд░реНрдердХ рд╣реЛрдЧрд╛ред
рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ I / O рдбреЗрдЯрд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдЕрдЦрдВрдбрддрд╛ рдХреЗ рд╕рд╛рдеSUSv3 рдореЗрдВ, рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ I / O рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ "I / O рдСрдкрд░реЗрд╢рди рдЬреЛ рдпрд╛ рддреЛ рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рд╕рдлрд▓ рд╣рд╕реНрддрд╛рдВрддрд░рдг [рдбрд┐рд╕реНрдХ рдкрд░] рдпрд╛ рдЕрд╕рдлрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред"
SUSv3 рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ I / O рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ ("рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛") рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдХрд░реНрдиреЗрд▓ рдЙрдиреНрд╣реЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдЗрдирдбреЗрдЯреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╕рдордп рдлрд╝рд╛рдЗрд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╡рд┐рд╡рд░рдг рдЕрдиреБрднрд╛рдЧ 14.4 рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред рдЗрд╕ рдмреАрдЪ, рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдЙрд╕рдХреЗ рд╕рдореВрд╣ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА, рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХреНрд╕реЗрд╕ рдЕрдзрд┐рдХрд╛рд░, рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░, рдлрд╝рд╛рдЗрд▓ рдХреА рд╣рд╛рд░реНрдб рд▓рд┐рдВрдХ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕рдордп рдЯрд┐рдХрдЯреЛрдВ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрддрд┐рдо рд╕рдордп рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХрд╛ рд╕рдордп рдЬреИрд╕реА рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИред рдФрд░ рдЕрдВрддрд┐рдо рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рд╕рдордп, рд╕рд╛рде рд╣реА рд╕рд╛рде рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХреА рдУрд░ рд╕рдВрдХреЗрдд рдХрд░рддрд╛ рд╣реИред
SUSv3 рдореЗрдВ рдкрд╣рд▓реЗ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ I / O рдкреВрд░реНрдгрддрд╛ рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдкреВрд░реНрдг рд╣реИред рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдЖрдЧреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдПрдХ рд░реАрдб рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рдХреЛ (рдбрд┐рд╕реНрдХ рд╕реЗ) рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рд▓рдВрдмрд┐рдд рд▓реЗрдЦрди рдХрд╛рд░реНрдп рд╣реИрдВ рдЬреЛ рдЕрдиреБрд░реЛрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбрд┐рд╕реНрдХ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- рдПрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд▓рд┐рдЦрд┐рдд рдЕрдиреБрд░реЛрдз рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбреЗрдЯрд╛ (рдбрд┐рд╕реНрдХ рдХреЛ) рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреИрд╕реЗ рдХрд┐ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдлрд╝рд╛рдЗрд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ред рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдмрд┐рдВрджреБ: рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ, рд╕рднреА рдореЗрдбреЗрдЯрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬрд┐рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрд╕рдХрд╛ рдЖрдХрд╛рд░ рд╣реИ (рдпрджрд┐ рд▓реЗрдЦрди рдСрдкрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝рд╛рддрд╛ рд╣реИ)ред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд╕рдордп рдХреЗ рдЯрд┐рдХрдЯреЛрдВ рдХреЛ рдмрд╛рдж рдореЗрдВ рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбрд┐рд╕реНрдХ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
SUSv3 рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рджреВрд╕рд░реЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ I / O рдкреВрд░реНрдгрддрд╛ рдлрд╝рд╛рдЗрд▓ рдЕрдЦрдВрдбрддрд╛ рдкреВрд░реНрдгрддрд╛ рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ I / O рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдиреНрдирдд рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЗрд╕ рдореЛрдб рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрджреНрдпрддрди рдХреЗ рджреМрд░рд╛рди рдЗрд╕рдХреА рд╕рднреА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдбрд┐рд╕реНрдХ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рдж рдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рди рд╣реЛред
рдлрд╝рд╛рдЗрд▓ I / O рдХреЗ рджреМрд░рд╛рди рдХрд░реНрдиреЗрд▓ рдмрдлрд░рд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓Fsync () рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рд╕рднреА рдмрдлрд╝рд░ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдФрд░ рд╕рднреА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЦреБрд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ fd рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╣реЛрддрд╛ рд╣реИред рд╕рд┐рдВрдХреНрд░реЛрдирд╕ I / O рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж fsync () рдХреЙрд▓рд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдЦрдВрдбрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрддреА рд╣реИ (рдлрд╝рд╛рдЗрд▓)ред
рдбрд┐рд╕реНрдХ рдбрд┐рд╡рд╛рдЗрд╕ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЗрд╕рдХреЗ рдХреИрд╢) рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рдмрд╛рдж рд╣реА fsync () рдХреЙрд▓ рд░рд┐рдЯрд░реНрди рдирд┐рдпрдВрддреНрд░рдг рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
#include <unistd.h> int fsync(int fd);
рд╕рдлрд▓рддрд╛ рдкрд░ 0 рдпрд╛ -1 рддреНрд░реБрдЯрд┐ рдкрд░ рджреЗрддрд╛ рд╣реИ
Fdatasync () рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдмрд┐рд▓реНрдХреБрд▓ fsync () рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рдВрдХреНрд░реЛрдирд╕ I / O рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдЦрдВрдбрддрд╛ (рдбреЗрдЯрд╛) рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред
#include <unistd.h> int fdatasync(int fd);
рд╕рдлрд▓рддрд╛ рдкрд░ 0 рдпрд╛ -1 рддреНрд░реБрдЯрд┐ рдкрд░ рджреЗрддрд╛ рд╣реИ
Fdatasync () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрднрд╡рддрдГ fsync () рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЛ рдПрдХ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рджреЛ рд╕реЗ рдбрд┐рд╕реНрдХ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдХрд╛рд░ рд╕рдорд╛рди рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдХреЙрд▓рд┐рдВрдЧ fdatasync () рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИред (рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ I / O рдСрдкрд░реЗрд╢рди рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдВрддрд┐рдо рдмрд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред) рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдХреЙрд▓рд┐рдВрдЧ fsync () рднреА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рдбрд┐рд╕реНрдХ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЛ рдордЬрдмреВрд░ рдХрд░реЗрдЧрд╛ред
рдбрд┐рд╕реНрдХ I / O рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдХрдореА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рд╕рдЯреАрдХ рдЕрджреНрдпрддрди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдордп рдЯрд┐рдХрдЯ) рдПрдХ рдирд┐рд░реНрдгрд╛рдпрдХ рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдИ рдлрд╝рд╛рдЗрд▓ рдЕрдкрдбреЗрдЯ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рдФрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЖрдорддреМрд░ рдкрд░ рдбрд┐рд╕реНрдХ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рджреЛрдиреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рдмрд╛рд░-рдмрд╛рд░ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдХреА рдЦреЛрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рд▓рд┐рдирдХреНрд╕ 2.2 рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, fdatasync () рдХреЛ fsync () рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд┐рд╕реА рднреА рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 2.6.17 рд╕реЗ рд╢реБрд░реВ, рд▓рд┐рдирдХреНрд╕ рдПрдХ рдЧреИрд░-рдорд╛рдирдХ рдкреНрд░рдгрд╛рд▓реА рдХреЙрд▓ рд╕рд┐рдВрдХ_рдлрд╛рдЗрд▓_рд░реЗрдиреНрдЬ () рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ fdatasync () рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдбрд┐рд╕реНрдХ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рдлреНрд▓рд╢рд┐рдВрдЧ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЧрд┐рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЭрдВрдбреЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдХреЙрд▓ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП Sync_file_range (2) рдореИрдиреБрдЕрд▓ рдкреЗрдЬ рджреЗрдЦреЗрдВред
рд╕рд┐рдВрдХ () рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рдХрд╛рд░рдг рд╕рднреА рдХрд░реНрдиреЗрд▓ рдмрдлрд╝рд░реНрд╕ рдХреЛ рдЕрджреНрдпрддрди рдлрд╝рд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реА (рдпрд╛рдиреА рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ, рдкреЙрдЗрдВрдЯрд░ рдмреНрд▓реЙрдХ, рдореЗрдЯрд╛рдбреЗрдЯрд╛, рдЖрджрд┐) рдбрд┐рд╕реНрдХ рдореЗрдВ рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░рддреА рд╣реИред
#include <unistd.h> void sync(void);
рд▓рд┐рдирдХреНрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рд╕рднреА рдбреЗрдЯрд╛ рдбрд┐рд╕реНрдХ рдбрд┐рд╡рд╛рдЗрд╕ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЙрд╕рдХреЗ рдХреИрд╢) рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рд╕рд┐рдВрдХ () рдлрд╝рдВрдХреНрд╢рди рд░рд┐рдЯрд░реНрди рдХрдВрдЯреНрд░реЛрд▓ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди SUSv3 рдореЗрдВ, рдпрд╣ рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рд╣реИ рдХрд┐ рд╕рд┐рдВрдХ () рдХреЗрд╡рд▓ I / O рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЛ рдпреЛрдЬрдирд╛ рдореЗрдВ рд▓реМрдЯрд╛рдП рдФрд░ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдирд┐рдпрдВрддреНрд░рдг рд▓реМрдЯрд╛рдПред
рдпрджрд┐ рд╡реЗ 30 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рдереЗ, рддреЛ рдбрд┐рд╕реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реНрдиреЗрд▓ рдереНрд░реЗрдб рдлреНрд▓рд╢ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реНрдиреЗрд▓ рдмрдлрд╝рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ рдмрдлрд╝рд░реНрд╕ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рдВрдЧрдд рдбрд┐рд╕реНрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХ рд╕реЗ рдмрд╛рд╣рд░ рд░рд╣рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдиреБрдХрд╕рд╛рди рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред Linux 2.6 рдкрд░, рдпрд╣ рдХрд╛рд░реНрдп pdflush рдХрд░реНрдиреЗрд▓ рдереНрд░реЗрдб рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред (рд▓рд┐рдирдХреНрд╕ 2.4 рдкрд░, рдЗрд╕реЗ рдХреБрдкреНрдб рдХрд░реНрдиреЗрд▓ рдереНрд░реЗрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред)
рд╡рд╣ рдЕрд╡рдзрд┐ (рд╕реЗрдХрдВрдб рдХреЗ рд╕реМрд╡реЗрдВ рднрд╛рдЧ рдореЗрдВ) рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдмрдлрд░ рдХреЛ pdflush рд╕реНрдЯреНрд░реАрдо рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдбрд┐рд╕реНрдХ рдореЗрдВ рдлреНрд▓рд╢ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдлрд╝рд╛рдЗрд▓ / proc / sys / vm / dirty_expire_centisecs рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╛рдЗрд▓реЗрдВ pdflush рд╕реНрдЯреНрд░реАрдо рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдСрдкрд░реЗрд╢рди рдХреА рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИрдВред
рд╕рднреА рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдХ рдореЛрдб рдЪрд╛рд▓реВ рдХрд░реЗрдВ: O_SYNCрдУ_рдПрд╕рд╡рд╛рдИрдПрдирд╕реА рдзреНрд╡рдЬ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп рдЦреБрд▓рд╛ () рдХреЙрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рд╕рднреА рдЖрдЙрдЯрдкреБрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
fd = open(pathname, O_WRONLY | O_SYNC);
рдЗрд╕ рдХреЙрд▓ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП () рдХреЗ рдмрд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдкрд░ рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦрди () рдСрдкрд░реЗрд╢рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдбрд┐рд╕реНрдХ рдореЗрдВ рдлреНрд▓рд╢ рдХрд░ рджреЗрддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рд▓рд┐рдЦреЛрдВ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдЕрдЦрдВрдбрддрд╛ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рд░рд╛рдЗрдЯ рдСрдкрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдмреАрдПрд╕рдбреА рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, O_FSYNC рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ O_SYNC рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред Glibc рдореЗрдВ, O_FSYNC рдзреНрд╡рдЬ O_SYNC рдХреЗ рдкрд░реНрдпрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
O_SYNC рдзреНрд╡рдЬ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡O_SYNC рдзреНрд╡рдЬ (рдпрд╛ рд▓рдЧрд╛рддрд╛рд░ рдХреЙрд▓ рдХреЛ fsync (), fdatasync (), рдпрд╛ рд╕рд┐рдВрдХ ()) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВред рдЪрд┐рддреНрд░ 13.3 O_SYNC рдзреНрд╡рдЬ рд╕реЗрдЯ рдФрд░ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдмрдлрд░ рдЖрдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ 1 рдорд┐рд▓рд┐рдпрди рдмрд╛рдЗрдЯреНрд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рджрд┐рдЦрд╛рддрд╛ рд╣реИ (ext2 рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ)ред рдкрд░рд┐рдгрд╛рдо "рд╡реЗрдирд┐рд▓рд╛" рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 2.6.30 рдФрд░ 402 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде ext2 рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓ (рдкреБрд╕реНрддрдХ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП filebuff / write_bytes.c рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗред рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рджрд┐рдП рдЧрдП рдмрдлрд░ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП 20 рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░рд╛рдкреНрдд рдФрд╕рдд рдореВрд▓реНрдп рд╣реЛрддрд╛ рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ 13.3ред 1 рдорд┐рд▓рд┐рдпрди рдмрд╛рдЗрдЯреНрд╕ рдХреА рд▓реЗрдЦрди рдЧрддрд┐ рдкрд░ O_SYNC рдзреНрд╡рдЬ рдХрд╛ рдкреНрд░рднрд╛рд╡

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, O_SYNC рдзреНрд╡рдЬ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп 1000 рдмрд╛рдЗрдЯ рдХрд╛ 1 рдмрд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдмрд┐рддрд╛рдП рдЧрдП рд╕рдордп рдореЗрдВ рд░рд╛рдХреНрд╖рд╕реА рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИред рдХреГрдкрдпрд╛ рдЙрд╕ рдмрдбрд╝реЗ рдЕрдВрддрд░ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдВ, рдЬреЛ рдмреАрддреЗ рд╕рдордп рдФрд░ CPU рдЙрдкрдпреЛрдЧ рд╕рдордп рдХреЗ рдмреАрдЪ O_SYNC рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╣реИ рдЬрдм рдкреНрд░рддреНрдпреЗрдХ рдмрдлрд░ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдбрд┐рд╕реНрдХ рдореЗрдВ рдкреНрд░рд╡рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВред 13.3, O_SYNC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдЕрдиреНрдп рдХрд╛рд░рдХ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдзреБрдирд┐рдХ рдбрд┐рд╕реНрдХ рдбреНрд░рд╛рдЗрд╡ рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдЖрдВрддрд░рд┐рдХ рдХреИрд╢ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ O_SYNC рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдмрд╕ рдЗрд╕ рдХреИрд╢ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдбрд┐рд╕реНрдХ рдХреИрд╢рд┐рдВрдЧ (hdparm тАУw0 рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ O_SYNC рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡ рдФрд░ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рдПрдЧрд╛ред 1 рдмрд╛рдЗрдЯ рдХреЗ рдмрдлрд░ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рдмреАрддрд╛ рд╣реБрдЖ рд╕рдордп 1030 рд╕реЗрдХрдВрдб рд╕реЗ рдмрдврд╝рдХрд░ рд▓рдЧрднрдЧ 16,000 рд╕реЗрдХрдВрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛ред 4096 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмрдлрд░ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рдмреАрддрд╛ рд╣реБрдЖ рд╕рдордп 0.34 рд╕реЗрдХрдВрдб рд╕реЗ 4 рд╕реЗрдХрдВрдб рддрдХ рдмрдврд╝ рдЬрд╛рдПрдЧрд╛ред рдирддреАрдЬрддрди, рдЕрдЧрд░ рдЖрдкрдХреЛ рдХрд░реНрдиреЗрд▓ рдмрдлрд╝рд░реНрд╕ рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝реНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд▓рд┐рдЦрдиреЗ () рдХреЗ рд▓рд┐рдП рдмрдбрд╝реЗ рдмрдлрд╝рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдпрд╛ O_SYNC рдзреНрд╡рдЬ рдХреЗ рдмрдЬрд╛рдп fsync () рдпрд╛ fdatasync () рдпрд╛ рдЖрд╡рдзрд┐рдХ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдЭрдВрдбреЗ O_DSYNC рдФрд░ O_RSYNCSUSv3 рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ I / O: O_DSYNC рдФрд░ O_RSYNC рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдУрдкрди-рдлрд╛рдЗрд▓ рд╕реНрдЯреЗрдЯрд╕ рдлреНрд▓реИрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
O_DSYNC рдзреНрд╡рдЬ рдкрд░рд┐рдгрд╛рдо рдмрд╛рдж рдореЗрдВ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдП рдЧрдП рд▓реЗрдЦрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ I / O (fdatasync () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди)ред рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдкреНрд░рднрд╛рд╡ O_SYNC рдзреНрд╡рдЬ рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рднрд╛рд╡ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдЕрдЦрдВрдбрддрд╛ (рдЬреИрд╕реЗ fsync ()) рдХреЗ рд╕рд╛рде рдмрд╛рдж рдореЗрдВ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдП рдЧрдП рд▓реЗрдЦрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
O_RSYNC рдзреНрд╡рдЬ O_SYNC рдпрд╛ O_DSYNC рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдЗрди рдЭрдВрдбреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рдж рдореЗрдВ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдП рдЧрдП рд░реАрдб рдСрдкрд░реЗрд╢рдВрд╕ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЦреЛрд▓рдиреЗ рдкрд░ O_RSYNC рдФрд░ O_DSYNC рдЭрдВрдбреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ (рдпрд╛рдиреА, рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рд▓рдВрдмрд┐рдд рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ O_DSYNC рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг рдкреВрд░реА рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ)ред рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рдиреЗ рдкрд░ O_RSYNC рдФрд░ O_SYNC рдЭрдВрдбреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдлрд╝рд╛рдЗрд▓ рдЕрдЦрдВрдбрддрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рдж рдореЗрдВ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдП рдЧрдП рд░реАрдб рдСрдкрд░реЗрд╢рдВрд╕ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛рдиреА, рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕рднреА рд▓рдВрдмрд┐рдд рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ O_SYNC рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг рдкреВрд░реА рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ)ред
рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 2.6.33 рдЬрд╛рд░реА рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, O_DSYNC рдФрд░ O_RSYNC рдЭрдВрдбреЗ рд▓рд┐рдирдХреНрд╕ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рдереЗ, рдФрд░ рдЗрди рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ O_SYNC рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ glibc рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред (O_RSYNC рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ O_SYNC рд░реАрдб рдСрдкрд░реЗрд╢рди рдХреЗ рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред)
рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 2.6.33 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рд▓рд┐рдирдХреНрд╕ O_DSYNC рдзреНрд╡рдЬ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ O_RSYNC рдзреНрд╡рдЬ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рднрд╡рд┐рд╖реНрдп рдХреЗ рдХрд░реНрдиреЗрд▓ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рд▓рд┐рдирдХреНрд╕ рдкрд░ 2.6.33 рдХрд░реНрдиреЗрд▓ рдЬрд╛рд░реА рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, O_SYNC рд╢рдмреНрджрд╛рд░реНрде рдХрд╛ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рдерд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, O_SYNC рдзреНрд╡рдЬ O_DSYNC рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓ рдХреЗ рд▓рд┐рдП рдЬреАрдПрдирдпреВ рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рд▓рд┐рдирдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ 2.6.33 рдФрд░ рдмрд╛рдж рдореЗрдВ, O_SYNC рдзреНрд╡рдЬ рдЕрднреА рднреА O_DSYNC рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдРрд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдкрд░рд┐рдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред (рдХрд░реНрдиреЗрд▓ 2.6.33 рдореЗрдВ рдкрд┐рдЫрдбрд╝реЗ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд╕рдВрдЧрддрддрд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, O_DSYNC рдзреНрд╡рдЬ рдХреЛ рдкреБрд░рд╛рдирд╛ O_SYNC рдзреНрд╡рдЬ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдирдП O_SYNC рдзреНрд╡рдЬ рдореЗрдВ O_DSYNC рдзреНрд╡рдЬ (рдХреНрд░рдорд╢рдГ 04010000 рдФрд░ 0,0000 рдорд╢реАрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ) рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдирдП рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рдВрд╕реНрдХрд░рдг 2.6.33 рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдЧреБрдард▓реА рдореЗрдВ рдХрдо рд╕реЗ рдХрдо O_DSYNC рд╢рдмреНрджрд╛рд░реНрде рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
13.4ред рдореИрдВ / рд╣реЗ рдмрдлрд░рд┐рдВрдЧ рдЕрд╡рд▓реЛрдХрди
рдЕрдВрдЬреАрд░ рдореЗрдВред рдЪрд┐рддреНрд░рд╛ 13.1 рд╕реНрдЯреЛрдбрд┐рдпреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдмрдлрд╝рд░рд┐рдВрдЧ рдпреЛрдЬрдирд╛ (рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдлрд╝рд░рд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рднреА рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд╛рд░реНрдЯ рдХреЛ рдЗрд╕рдХреЗ рдордзреНрдп рдореЗрдВ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк stdio рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреЛ stdio рдмрдлрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЗрдореЛрд░реА рд╕реНрдкреЗрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЬрдм рдпрд╣ рдмрдлрд╝рд░ рднрд░ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ stdio рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд░рд┐рд╕реЛрд░реНрдЯ () рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдЬреЛ рдХрд░реНрдиреЗрд▓ рдмрдлрд░ рдХреИрд╢ (рдХрд░реНрдиреЗрд▓ рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдерд┐рдд) рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдХрд░реНрдиреЗрд▓ рдбрд┐рд╕реНрдХ рдХреЛ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рд╕реНрдХ рдСрдкрд░реЗрд╢рди рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред
рдЕрдВрдЬреАрд░ рдореЗрдВ рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдмрд╛рдПрдВ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВред 13.1 рдРрд╕реЗ рдХреЙрд▓ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдХрд┐рд╕реА рднреА рдмрдлрд╝рд░реНрд╕ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд▓ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рджрд╛рдпрд╛рдВ рднрд╛рдЧ рдЙрди рдХреЙрд▓реЛрдВ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рддреЛ рд╕реНрдЯреИрдбрд┐рдпреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдмрдлрд░рд┐рдВрдЧ рдХреЛ рдмрдВрдж рдХрд░рдХреЗ рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдореЛрдб рдХреЗ рдлрд╝рд╛рдЗрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдХреЗ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦрди () рдХреЙрд▓ рддреБрд░рдВрдд рдбрд┐рд╕реНрдХ рдореЗрдВ рдлреНрд▓рд╢ рд╣реЛ рдЬрд╛рдПред

13.5ред рдХрд░реНрдиреЗрд▓ I / O рдЕрдзрд┐рд╕реВрдЪрдирд╛
Posix_fadvise () рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рддрд░реАрдХреЗ рдХреЗ рдХрд░реНрдиреЗрд▓ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдХрд░реНрдиреЗрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд▓реЗрдХрд┐рди рдирд╣реАрдВ рд╣реИ) рдмрдлрд░ рдХреИрд╢ рдХреЗ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП posix_fadvise () рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП I / O рдкреНрд░рджрд░реНрд╢рди рдмрдврд╝ рд░рд╣рд╛ рд╣реИред Posix_fadvise () рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
#define _XOPEN_SOURCE 600 #include <fcntl.h> int posix_fadvise(int fd, off_t offset, off_t len, int advice);
рд╕рдлрд▓рддрд╛ 0 рдпрд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рддреНрд░реБрдЯрд┐ рд╕рдВрдЦреНрдпрд╛ рд╣реЛрдиреЗ рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреА рд╣реИ
Fd рддрд░реНрдХ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╣реИ рдЬреЛ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рддрд░реНрдХ рдСрдлрд╕реЗрдЯ рдФрд░ рд▓реЗрди рдлрд╛рдЗрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ: рдСрдлрд╕реЗрдЯ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдСрдлрд╕реЗрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд▓реЗрди рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдЗрд╕рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрди рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рднреА рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдорддрд▓рдм рд╣реИ, рдСрдлрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ред (реи.рем.рем рд╕реЗ рдкрд╣рд▓реЗ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рд▓реЗрди рдХреЗ рд▓рд┐рдП реж рдорд╛рди рдХрд╛ рд╢рд╛рдмреНрджрд┐рдХ рдЕрд░реНрде реж рдмрд╛рдЗрдЯреНрд╕ рдерд╛ред)
рд╕рд▓рд╛рд╣ рддрд░реНрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЗрдЪреНрдЫрд┐рдд рдкреНрд░рдХреГрддрд┐ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
POSIX_FADV_NORMAL - рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЙрдкрдЪрд╛рд░ рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реВрдЪрдирд╛ рдирд╣реАрдВ рджреА рдЧрдИ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдкрд░, рдпрд╣ рдСрдкрд░реЗрд╢рди рд╡рд┐рдВрдбреЛ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЙрд╕рдХреЗ рдореВрд▓ рдЖрдХрд╛рд░ (128 KB) рддрдХ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
POSIX_FADV_SEQUENTIAL - рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЫреЛрдЯреЗ рдСрдлрд╕реЗрдЯ рд╕реЗ рдмрдбрд╝реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдкрд░, рдпрд╣ рдСрдкрд░реЗрд╢рди рд╡рд┐рдВрдбреЛ рдХреЛ рдЙрд╕рдХреЗ рдореВрд▓ рдорд╛рди рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
POSIX_FADV_RANDOM - рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреНрд░рдо рдореЗрдВ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдБрдЪ рд╢рд╛рдорд┐рд▓ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдкрд░, рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рдХреНрд░рд┐рдп рдкрдврд╝рдиреЗ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред
POSIX_FADV_WILLNEED - рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рддрдХ рдкрд╣реБрдВрдЪ рд╢рд╛рдорд┐рд▓ рд╣реИред рдХрд░реНрдиреЗрд▓ рдкреВрд░реНрд╡рдЧрд╛рдореА рд░реВрдк рд╕реЗ рдСрдлрд╕реЗрдЯ рдФрд░ рд▓реЗрди рддрд░реНрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реАрдорд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдмрдлрд░ рдХреИрд╢ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИред рдмрд╛рдж рдореЗрдВ рдкрдврд╝реА рдЧрдИ () рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрд▓ рдбрд┐рд╕реНрдХ I / O рдХреЛ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рдмрдлрд░ рдХреИрд╢ рд╕реЗ рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИред рдХрд░реНрдиреЗрд▓ рдмрдлрд░ рдХреИрд╢ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдпрд╛ рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдореЗрдореЛрд░реА рдХреА рд╡рд┐рд╢реЗрд╖ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдкреЗрдЬ рдХреЛ рдЕрдВрддрддрдГ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рдореЗрдореЛрд░реА рдЙрдЪреНрдЪ рдорд╛рдВрдЧ рдореЗрдВ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЙрдЬрд╝рд┐рдХреНрд╕_рдлреИрдбрд╡реАрд╕ () рдФрд░ рдмрд╛рдж рдореЗрдВ рдХреЙрд▓ (рдпрд╛ рдХреЙрд▓) рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП () рдХреЗ рдмреАрдЪ рдПрдХ рдЫреЛрдЯреЗ рд╕рдордп рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред (POSIX_FADV_WILLNEED рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд░рд╛рдмрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд▓рд┐рдирдХреНрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реАрдбрд╣реЗрдб () рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред)
POSIX_FADV_DONTNEED - рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреЙрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдЗрд╕ рддрд░рд╣, рдХрд░реНрдиреЗрд▓ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рд╕рдВрдмрдВрдзрд┐рдд рдХреИрд╢ рдкреЗрдЬ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рдХреЛ рдореБрдХреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдкрд░, рдпрд╣ рдСрдкрд░реЗрд╢рди рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрджрд┐ рд╣реЛрд╕реНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд▓реЗрдЦрди рдХрддрд╛рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рднрд░рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХрд░реНрдиреЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдВрд╢реЛрдзрд┐рдд рдХреИрд╢ рдкреЗрдЬ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдХрд░реНрдиреЗрд▓ рддрдм рд╕рднреА рдХреИрд╢ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдореБрдХреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░реЗ рдЪрд░рдг рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рддрднреА рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдЖрдзрд╛рд░ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рдд, рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХрддрд╛рд░ рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдЪреВрдВрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХрддрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЧрд╛рд░рдВрдЯреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ POSIX_FADV_DADNEED рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ fd рд╣реИрдВрдбрд▓ рдкрд░ fsync () рдпрд╛ fdatasync () рдХреЙрд▓ рдХрд░рдХреЗ рдХреИрд╢ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдореБрдХреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
POSIX_FADV_NOREUSE - рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдмрд┐рдирд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд░реНрдиреЗрд▓ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрди рддрдХ рдПрдХрд▓ рдкрд╣реБрдВрдЪ рдХреЗ рдмрд╛рдж рдкреГрд╖реНрдареЛрдВ рдХреЛ рдореБрдХреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдкрд░, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
Posix_fadvise () рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗрд╡рд▓ SUSv3 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдФрд░ рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рднреА UNIX рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдкрд░, рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 2.6 рдХреЗ рдмрд╛рдж рд╕реЗ posix_fadvise () рдХреЙрд▓ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
13.6ред рдмрдлрд░ рдХреИрд╢ рдмрд╛рдИрдкрд╛рд╕: рдбрд╛рдпрд░реЗрдХреНрдЯ I / O
рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 2.4 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рд▓рд┐рдирдХреНрд╕ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдлрд░ рдХреИрд╢реЗ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрдм рдбрд┐рд╕реНрдХ I / O рдбреЗрдЯрд╛ рдХреЛ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЗрдореЛрд░реА рд╕реНрдкреЗрд╕ рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдбрд┐рд╕реНрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд▓реЗ рдЬрд╛рдХрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдЗрд╕ рдореЛрдб рдХреЛ рдкреНрд░рддреНрдпрдХреНрд╖ рдпрд╛ рдЕрд╕рдВрд╕рд╛рдзрд┐рдд I / O рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рджреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдХреЗрд╡рд▓ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИ рдФрд░ SUSv3 рдореЗрдВ рдорд╛рдирдХреАрдХреГрдд рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдкрдХрд░рдгреЛрдВ рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рддреНрдпрдХреНрд╖ I / O рдПрдХреНрд╕реЗрд╕ рд╡рд┐рдХрд▓реНрдк рдЕрдзрд┐рдХрд╛рдВрд╢ UNIX рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдХрднреА-рдХрднреА рдкреНрд░рддреНрдпрдХреНрд╖ I / O рдЙрдЪреНрдЪ I / O рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдЧрд▓рдд рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпрдХреНрд╖ I / O рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХрд░реНрдиреЗрд▓ рдПрдХ рдмрдлрд░ рдХреИрд╢ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ I / O рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕рдХреНрд░рд┐рдп рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛, рдбрд┐рд╕реНрдХ рдмреНрд▓реЙрдХ рдХреЗ рд╕рдореВрд╣реЛрдВ рдореЗрдВ I / O рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдорд╛рди рдорд╛рддреНрд░рд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓, рдХреИрд╢ рдореЗрдВ рдмрдлрд╝рд░реНрд╕ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред рдкреНрд░рддреНрдпрдХреНрд╖ I / O рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЗрди рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ I / O рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдмрдВрдзрди рд╕рд┐рд╕реНрдЯрдо рдЬреЛ рд╕реНрд╡рдпрдВ рдХреИрд╢рд┐рдВрдЧ рдФрд░ I / O рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CPU рд╕рдордп рдФрд░ рдореЗрдореЛрд░реА рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдкреНрд░рддреНрдпрдХреНрд╖ рдЗрдирдкреБрдЯ-рдЖрдЙрдЯрдкреБрдЯ рдПрдХрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдпрд╛ рдмреНрд▓реЙрдХ рдбрд┐рд╡рд╛рдЗрд╕ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрд┐рд╕реНрдХ) рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдУрдкрди () рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЦреЛрд▓рддреЗ рд╕рдордп, O_DIRECT рдзреНрд╡рдЬ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
O_DIRECT рдзреНрд╡рдЬ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 2.4.10 рдХреЗ рдмрд╛рдж рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕рднреА рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреБрдирд┐рдпрд╛рджреА рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо O_DIRECT рдзреНрд╡рдЬ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдИ рдЧреИрд░-рдпреВрдирд┐рдХреНрд╕ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо (рдЬреИрд╕реЗ VFAT) рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдЪрдпрдирд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдХреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо O_DIRECT рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреЙрд▓рд┐рдВрдЧ рдУрдкрди () рдПрдХ EINVAL рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧреА) рдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдХреЗред
рдпрджрд┐ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреЗ O_DIRECT рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓рд╛, рдФрд░ рджреВрд╕рд░рд╛ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ (рдЬреЛ рдХрд┐ рдмрдлрд░ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рд╣реИ, рддреЛ рдмрдлрд░ рдХреИрд╢ рдХреА рд╕рд╛рдордЧреНрд░реА рдФрд░ рдкреНрд░рддреНрдпрдХреНрд╖ I / O рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝реЗ рдпрд╛ рд▓рд┐рдЦреЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдирд┐рд░рдВрддрд░рддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдбрд┐рд╕реНрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХрдЪреНрдЪреА рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдкреБрд░рд╛рдиреА (рдЕрдм рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ) рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрдЪреНрдЪреЗ (8) рдореИрдиреБрдЕрд▓ рдкреЗрдЬ рдкрд░ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред
рдкреНрд░рддреНрдпрдХреНрд╖ I / O рдХреЗ рд▓рд┐рдП рд╕рдВрд░реЗрдЦрдг рдкреНрд░рддрд┐рдмрдВрдзрдЪреВрдВрдХрд┐ рдкреНрд░рддреНрдпрдХреНрд╖ I / O (рдбрд┐рд╕реНрдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ) рдореЗрдВ рдбрд┐рд╕реНрдХ рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рд╢рд╛рдорд┐рд▓ рд╣реИ, I / O рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рд╕реАрдорд╛рдПрдВ рдЕрд╡рд╢реНрдп рджреЗрдЦреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
- рдкреЛрд░реНрдЯреЗрдмрд▓ рдбреЗрдЯрд╛ рдмрдлрд░ рдХреЛ рдореЗрдореЛрд░реА рдмреЙрд░реНрдбрд░, рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреЗ рдХрдИ рдкрд░ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдлрд╛рдЗрд▓ рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдСрдлрд╕реЗрдЯ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдбреЗрдЯрд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдореЗрдВ рдХрдИ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
- рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдбреЗрдЯрд╛ рдХреА рд▓рдВрдмрд╛рдИ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдЗрди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХрд╛ рднреА рдкрд╛рд▓рди рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк EINVAL рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред рдКрдкрд░ рдХреА рд╕реВрдЪреА рдореЗрдВ, рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рднреМрддрд┐рдХ рдмреНрд▓реЙрдХ рдХреЗ рдЖрдХрд╛рд░ (рдЖрдорддреМрд░ рдкрд░ 512 рдмрд╛рдЗрдЯреНрд╕) рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред
рд▓рд┐рдирдХреНрд╕ 2.4 рдореЗрдВ рдкреНрд░рддреНрдпрдХреНрд╖ I / O рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╕рдордп, рд▓рд┐рдирдХреНрд╕ 2.6 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдП рдЧрдП рд╣реИрдВ: рд╕рдВрд░реЗрдЦрдг, рд▓рдВрдмрд╛рдИ рдФрд░ рдСрдлрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рддрд╛рд░реНрдХрд┐рдХ рдмреНрд▓реЙрдХ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред (рдЖрдорддреМрд░ рдкрд░, рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рдмреНрд▓реЙрдХреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ 1024, 2048 рдпрд╛ 4096 рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВред)
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЙрджрд╛рд╣рд░рдгрдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рдиреЗ рдкрд░ O_DIRECT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг 13.1 рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд╛рд░ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рддрд░реНрдХреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЕрдиреБрдХреНрд░рдо рдореЗрдВ) рдЬрд┐рд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрдврд╝реА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕ рдСрдлрд╝рд╕реЗрдЯ рдХреЛ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдбреЗрдЯрд╛ рдмрдлрд░ рдХреЗ рд╕рдВрд░реЗрдЦрдг, рдкрдврд╝рд╛ рд╣реБрдЖ ()ред рдЕрдВрддрд┐рдо рджреЛ рддрд░реНрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ рдФрд░ рдХреНрд░рдорд╢рдГ рд╢реВрдиреНрдп рдСрдлрд╕реЗрдЯ рдФрд░ 4096 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЪреВрдХ рд╣реИрдВредрдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдХреНрдпрд╛ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: $ ./direct_read /test/x 512 512 0 Read 512 bytes $ ./direct_read /test/x 256 ERROR [EINVAL Invalid argument] read 512 $ ./direct_read /test/x 512 1 ERROR [EINVAL Invalid argument] read 512 $ ./direct_read /test/x 4096 8192 512 Read 4096 bytes $ ./direct_read /test/x 4096 512 256 ERROR [EINVAL Invalid argument] read 512
рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ 13.1 рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реНрдореГрддрд┐ рдХреЗ рдПрдХ рдмреНрд▓реЙрдХ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдЗрд╕рдХреЗ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рдХрдИ рдореЗрдВ рд╕рдВрд░реЗрдЦрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдорд░рдг () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЙрдкрдЦрдВрдб 7.1.4 рдореЗрдВ рд╕рдВрд╕реНрдорд░рдг () рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереАред
#define _GNU_SOURCE /* O_DIRECT <fcntl.h> */ #include <fcntl.h> #include <malloc.h> #include "tlpi_hdr.h" int main(int argc, char *argv[]) { int fd; ssize_t numRead; size_t length, alignment; off_t offset; void *buf; if (argc < 3 || strcmp(argv[1], "тАУhelp") == 0) usageErr("%s file length [offset [alignment]]\n", argv[0]); length = getLong(argv[2], GN_ANY_BASE, "length"); offset = (argc > 3) ? getLong(argv[3], GN_ANY_BASE, "offset") : 0; alignment = (argc > 4) ? getLong(argv[4], GN_ANY_BASE, "alignment") : 4096; fd = open(argv[1], O_RDONLY | O_DIRECT); if (fd == -1) errExit("open"); /* memalign() , , . 'buf' , 'alignment', . , , , , 256 , , 512- . '(char *)' ( 'void *', memalign(). */ buf = (char *) memalign(alignment * 2, length + alignment) + alignment; if (buf == NULL) errExit("memalign"); if (lseek(fd, offset, SEEK_SET) == -1) errExit("lseek"); numRead = read(fd, buf, length); if (numRead == -1) errExit("read"); printf("Read %ld bytes\n", (long) numRead); exit(EXIT_SUCCESS); } _______________________________________________________________filebuff/direct_read.c
┬╗рдкреБрд╕реНрддрдХ рдХреА рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрд╛рд╢рдХ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ┬╗
рд╕рд╛рдордЧреНрд░реА┬╗
рдЕрдВрд╢рд▓рд┐рдирдХреНрд╕ - рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдХреВрдкрди рдкрд░ 20% рдХреА рдЫреВрдЯ