Open (system call)
பெரும்பாலான கோப்பு அமைப்புகளுக்கு, ஒரு நிரல் திறந்த கணினி அழைப்பைப் பயன்படுத்தி ஒரு கோப்பு அமைப்பில் ஒரு கோப்பின் அணுகலைத் தொடங்குகிறது. இது கோப்புடன் தொடர்புடைய வளங்களை (கோப்பு விவரக்குறிப்பு) ஒதுக்குகிறது, மேலும் அந்த கோப்பைக் குறிக்க செயல்முறை பயன்படுத்தும் கைப்பிடியை வழங்குகிறது. சில சந்தர்ப்பங்களில் திறந்த முதல் அணுகல் மூலம் செய்யப்படுகிறது. ஒரே கோப்பு பல செயல்முறைகளால் ஒரே நேரத்தில் திறக்கப்படலாம், அதே செயல்முறையால் கூட, கோப்பு அமைப்பு மற்றும் கோப்பு முறைமையைப் பொறுத்து ஒரே கோப்புக்கு பல கோப்பு விளக்கங்கள் விளைகின்றன. கோப்பு சுட்டியை நகர்த்துவது அல்லது அதை மூடுவது போன்ற விளக்கங்களில் உள்ள செயல்பாடுகள் சுயாதீனமானவை, அவை அதே கோப்பின் பிற விளக்கங்களை பாதிக்காது. எழுதுதல் போன்ற கோப்பின் செயல்பாடுகளை மற்ற விளக்கங்களில் உள்ள செயல்பாடுகளால் காணலாம்ஃ பிற்கால வாசிப்பு புதிதாக எழுதப்பட்ட தரவைப் படிக்க முடியும். திறந்திருக்கும் போது, கோப்பு முறைமை இடையகங்களுக்கான நினைவகத்தை ஒதுக்கலாம் அல்லது முதல் செயல்பாடு வரை காத்திருக்கலாம். முழுமையான கோப்பு பாதை தீர்க்கப்பட்டது. தொலைதூர ஹோஸ்டுடன் இணைப்பது மற்றும் அகற்றக்கூடிய ஊடகம் தேவை என்று ஒரு ஆபரேட்டருக்கு அறிவிப்பது இதில் அடங்கும். இது ஒரு தகவல்தொடர்பு சாதனத்தின் துவக்கத்தை உள்ளடக்கியிருக்கலாம். இந்த கட்டத்தில் புரவலன் அல்லது நடுத்தரம் கிடைக்கவில்லை என்றால் ஒரு பிழை திருப்பித் தரப்படலாம். குறைந்தபட்சம் கோப்பு முறைமைக்குள் உள்ள அடைவுக்கான முதல் அணுகல் செய்யப்படுகிறது. பாதையின் உயர் மட்ட கூறுகளை (கோப்பகங்கள்) கண்டுபிடிக்கவோ அணுகவோ முடியாவிட்டால் பொதுவாக ஒரு பிழை திருப்பித் தரப்படும். கோப்பு இருக்கும் என்று எதிர்பார்க்கப்பட்டாலும் அது இல்லை அல்லது கோப்பு ஏற்கனவே இல்லை என்றால் அது இருந்தால் பிழை திரும்பும். கோப்பு இருக்கும் என்று எதிர்பார்க்கப்பட்டால், அது அவ்வாறு செய்தால், கோப்பு மெட்டா தரவு அல்லது அணுகல் கட்டுப்பாட்டு பட்டியலுக்குள் அனுமதி கொடிகளால் கட்டுப்படுத்தப்பட்ட கோப்பு அணுகல், கோரப்பட்ட வகை செயல்பாடுகளுக்கு எதிராக சரிபார்க்கப்படுகிறது. இதற்கு வழக்கமாக கூடுதல் கோப்பு முறைமை அணுகல் தேவைப்படுகிறது, இருப்பினும் சில கோப்பு முறைமைகளில் மெட்டா-கொடிகள் அடைவு கட்டமைப்பின் ஒரு பகுதியாக இருக்கலாம். கோப்பு உருவாக்கப்பட்டால், கோப்பு முறைமை இயல்புநிலை ஆரம்ப சேமிப்பு அளவு அல்லது கோப்பு முறைமை திறன்களைப் பொறுத்து ஒரு குறிப்பிட்ட தொகையை ஒதுக்கலாம். இது தோல்வியுற்றால் ஒரு பிழை திருப்பித் தரப்படும். புதிய உள்ளீட்டைக் கொண்டு கோப்பகத்தைப் புதுப்பிப்பது செய்யப்படலாம் அல்லது மூடல் செய்யப்படும் வரை தாமதமாகலாம். திறந்திருக்கும் போது ஏற்படக்கூடிய பல்வேறு பிற பிழைகள் அடைவு புதுப்பிப்பு தோல்விகள், அனுமதிக்கப்படாத பல இணைப்புகள், ஊடக தோல்விகள், தகவல்தொடர்பு இணைப்பு தோல்விகள் மற்றும் சாதன தோல்விகள் ஆகியவை அடங்கும். திரும்பும் மதிப்பு எப்போதும் ஆராயப்பட வேண்டும் மற்றும் ஒரு பிழை குறிப்பிட்ட நடவடிக்கை எடுக்கப்பட வேண்டும். பல சந்தர்ப்பங்களில் நிரலாக்க மொழி-குறிப்பிட்ட ரன்-டைம் நூலகம் திறக்கப்படுவது கோப்பு தொடர்பான ரன்-டைம் நூலக கட்டமைப்பைத் தொடங்குவது உட்பட கூடுதல் செயல்களைச் செய்யலாம். ஒரு கோப்பு இனி தேவையில்லை என்றால், நிரல் அதை மூட வேண்டும். இது இயக்க நேர நூலகம் மற்றும் கோப்பு முறைமை இடையகங்களை இயற்பியல் ஊடகத்திற்கு புதுப்பிக்கும் மற்றும் பிரத்யேக பயன்பாடு தேவைப்பட்டால் தரவை அணுக மற்ற செயல்முறைகளை அனுமதிக்கும். நிரல் ரன்-டைம் வெளியேற்றத்தை அழைத்தால் சில ரன்-டைம் நூலகங்கள் ஒரு கோப்பை மூடக்கூடும். நிரல் நிறுத்தப்பட்டால் சில கோப்பு முறைமைகள் தேவையான செயல்பாடுகளைச் செய்யலாம். கர்னல் அல்லது மின் செயலிழப்பு ஏற்பட்டால் இவை இரண்டும் நடக்க வாய்ப்பில்லை. இது சேதமடைந்த கோப்பு முறைமை கட்டமைப்புகளை ஏற்படுத்தக்கூடும், இதற்கு சலுகை பெற்ற மற்றும் நீண்ட கோப்பு முறைமை பயன்பாடுகளை இயக்க வேண்டியிருக்கும், இதன் போது முழு கோப்பு முறைமையும் அணுக முடியாததாக இருக்கலாம். திறந்த அழைப்பு வாதங்கள் கோப்பின் பாதை பெயர், கோப்பில் கோரப்பட்ட அணுகல் வகை (படிக்க, எழுத, இணைத்தல் போன்றவை). ), முறை எனப்படும் மூன்றாவது வாதத்தைப் பயன்படுத்தி ஆரம்ப கோப்பு அனுமதி கோரப்படுகிறது. ஒரு புதிய கோப்பு உருவாக்கப்படும்போது மட்டுமே இந்த வாதம் பொருத்தமானது. கோப்பைப் பயன்படுத்திய பிறகு, செயல்முறை நெருக்கமான அழைப்பைப் பயன்படுத்தி கோப்பை மூட வேண்டும், இது கோப்பின் கோப்பு விளக்கத்தை மூடுவதற்கு எடுக்கும். சில கோப்பு அமைப்புகள் கோப்பை வெளியிட அனுமதிக்கும் மனநிலையை உள்ளடக்கியது. சில கணினி மொழிகளில் குறிப்பிட்ட கோப்பு முறைமைகளுக்கான கூடுதல் செயல்பாடுகளை உள்ளடக்கிய இயக்க நேர நூலகங்கள் அடங்கும். திறந்த (அல்லது சில துணை வழக்கமான) முக்கிய அளவு, பதிவு அளவு, இணைப்பு வேகம் ஆகியவற்றிற்கான விவரக்குறிப்புகள் இருக்கலாம். சில திறந்த நடைமுறைகளில் பிழை ஏற்பட்டால் செயல்படுத்தப்பட வேண்டிய நிரல் குறியீட்டின் விவரக்குறிப்பு அடங்கும். பெர்ல் மொழி வடிவம் திறந்த FILEHANDLE, MODE [, EXPR] எடுத்துக்காட்டாகஃ திற (எனது $fh ",>", output.txt "); பெர்ல் ஒரு கோப்புடன் ஒரு வரிசையை இணைக்க டைஃஃ கோப்பு தொகுதியின் டை செயல்பாட்டையும் பயன்படுத்துகிறது. டைஃ: ꯑꯦꯅꯤடிபிஎம் _ கோப்பு செயல்பாடு ஒரு கோப்புடன் ஒரு ஹாஷை தொடர்புபடுத்துகிறது. சி நூலகம் போஸிக்ஸ் வரையறை திறந்த அழைப்பு சி மொழிக்கான போஸிக்ஸ் விவரக்குறிப்பால் தரப்படுத்தப்படுகிறதுஃ இன்ட் ஓபன் (கான்ஸ்ட் சார் * பாதை, இன்ட் ஆஃப் லேக்,./*, மோட் _ டி மோட் */); இன்ட் ஓபனாட் (இன்ட் எஃப். டி, கான்ஸ்ட் சார் * பாதை, இன்ட் ஆஃப் லேக்,); இன்ட் கிரியேட் (கான்ஸ்ட் சார் * பாதை, மோட் _ டி பயன்முறை); ஃபைல் * ஃபோபென் (கான்ஸ்ட் சார் * கோப்பு பெயரைக் கட்டுப்படுத்தவும், கான்ஸ்ட் சார் * கட்டுப்பாட்டு முறை); திரும்பிய மதிப்பு ஒரு கோப்பு விளக்கமாகும், இது ஒரு செயல்முறை குறிப்பிட்ட கட்டமைப்பைக் குறிக்கிறது, இதில் மற்றவற்றுடன், கோப்பில் எந்த இடம் அடுத்த செயல்பாட்டின் மூலம் செயல்படுத்தப்படும் என்பதைக் குறிக்கும் ஒரு நிலை சுட்டிக்காட்டி உள்ளது. பிழையை விவரிக்கும் பிழையுடன் தோல்வியைக் குறிக்கும்-1 திறக்கப்படலாம். கோப்பு முறைமை அனைத்து திறந்த கோப்புகளின் உலகளாவிய அட்டவணையையும் புதுப்பிக்கிறது, இது ஒரு கோப்பு தற்போது எந்த செயல்முறையிலும் பயன்பாட்டில் உள்ளதா என்பதை தீர்மானிக்க பயன்படுத்தப்படுகிறது. பாதை திறக்க வேண்டிய கோப்பின் பெயர். கோப்பு எங்கே, எந்த கோப்பு அமைப்பில், கோப்பு காணப்படுகிறது (அல்லது உருவாக்கப்பட வேண்டும்) என்பதை வரையறுக்கும் கோப்பு பாதை இதில் அடங்கும். ஓபனாட் ஒரு ஒப்பீட்டு பாதையை எதிர்பார்க்கிறது. OFLAG இந்த வாதம் விருப்ப அளவுருக்கள் மற்றும் (<fcntl.h> இலிருந்து) ஒன்றாக OR 'இன் மூலம் உருவாக்கப்பட்டதுஃ விருப்ப அளவுருக்கள் பின்வருவனவற்றை உள்ளடக்குகின்றனஃ எழுதப்பட்ட O _ APPEND தரவு கோப்பின் முடிவில் இணைக்கப்படும். கோப்பு செயல்பாடுகள் எப்போதும் கோப்பின் முடிவில் நிலை சுட்டியை சரிசெய்யும். O _ CREAT கோப்பு இல்லையென்றால் அதை உருவாக்குங்கள்; இல்லையெனில் திறந்த கோப்பு ENOENT இல் பிழையை அமைப்பதில் தோல்வியடைகிறது. கோப்பு ஏற்கனவே இருந்தால் O _ EXCL உடன் பயன்படுத்தப்படுகிறது, பின்னர் தோல்வியுற்றால், EEXIST க்கு errno ஐ அமைக்கிறது. O _ TRUNC கோப்பு ஏற்கனவே இருந்தால், அதன் முந்தைய உள்ளடக்கங்களை நிராகரிக்கவும், அதை வெற்று கோப்பாகக் குறைக்கவும். ஒரு சாதனம் அல்லது பெயரிடப்பட்ட குழாய்க்கு பொருந்தாது. திறந்த அழைப்பில் கூடுதல் கொடிகள் மற்றும் பிழைகள் வரையறுக்கப்படுகின்றன. கிரியேட் () பின்வருமாறு செயல்படுத்தப்படுகிறதுஃ இன்ட் கிரியேட் (கான்ஸ்ட் சார் * பாதை, மோட் _ டி முறை) {ரிட்டர்ன் ஓபன் (பாதை, ஓ WRONLY|O_CREAT |O_TRUNC, முறை);} ஃபோபென் ஆர், டபிள்யூ, ஏ மற்றும் + போன்ற சரம் கொடிகளைப் பயன்படுத்துகிறது மற்றும் fgets, fputs மற்றும் fclose உடன் பயன்படுத்தப்படும் கோப்பு சுட்டிக்காட்டியை வழங்குகிறது. ஒரு புதிய கோப்பை உருவாக்கும் போது மட்டுமே விருப்பமான மற்றும் பொருத்தமான முறை, கோப்பு அனுமதிகளை வரையறுக்கிறது. உரிமையாளர், குழு அல்லது அனைத்து பயனர்களாலும் கோப்பைப் படிப்பது, எழுதுவது அல்லது செயல்படுத்துவது இதில் அடங்கும். அழைப்பு செயல்முறையின் உமாஸ்க் மூலம் முறை மறைக்கப்பட்டுள்ளதுஃ உமாஸ்க்கில் அமைக்கப்பட்ட பிட்கள் பயன்முறையில் அழிக்கப்படுகின்றன. கோப்பு விளக்கத்தையும் பார்க்கவும்-இது எவ்வாறு செயல்படுகிறது மற்றும் திறந்த குறிப்புகள் குறிப்புகள் தொடர்பான பிற செயல்பாடுகள் டபிள்யூ. ரிச்சர்ட் ஸ்டீவன்ஸின் யுனிக்ஸ் சூழலில் மேம்பட்ட நிரலாக்கம் யுனிக்ஸ் கருத்து மற்றும் பயன்பாடு சுமிதாப் தாஸ் சி போஸிக்ஸ் நூலக அமைப்பு எடுத்துக்காட்டாக சி குறியீட்டைக் கொண்ட கட்டுரைகளை அழைக்கிறது