سی پروگرامنگ میں فائل کا سائز کیسے تلاش کریں۔

Sy Prwgramng My Fayl Ka Sayz Kys Tlash Kry



کیا آپ سی پروگرامنگ میں نئے ہیں اور فائل کا سائز تلاش کرنے کا طریقہ تلاش کر رہے ہیں؟ کہیں اور نہ جاؤ! اس گائیڈ میں، آپ سی پروگرامنگ میں فائل کا سائز معلوم کرنے کا طریقہ سیکھیں گے۔ فائل کے اندر ڈیٹا رکھنے کے لیے استعمال ہونے والے بائٹس کی تعداد کو فائل کا سائز کہا جاتا ہے۔ فائل کا سائز جان کر، آپ فائل ہینڈلنگ کے مختلف کام انجام دے سکتے ہیں، بشمول کاپی کرنا، پڑھنا یا لکھنا۔

اس ٹیوٹوریل اور سادہ کوڈ کی مثالوں میں بیان کردہ مرحلہ وار رہنما خطوط کے ذریعے، آپ کسی بھی فائل کا سائز تیزی سے تلاش کر سکتے ہیں۔







سی پروگرامنگ میں فائل کا سائز تلاش کریں۔

ذیل میں ذکر کردہ C میں فائل کا سائز تلاش کرنے کے مختلف طریقے ہیں۔



1: stat() فنکشن کا استعمال

C میں، فائل کا سائز معلوم کرنے کا سب سے سیدھا طریقہ استعمال کرنا ہے۔ stat() سسٹم کال فنکشن۔ دی stat() فنکشن فائل کی حیثیت کی معلومات کو بازیافت کرتا ہے اور اسے ایک ڈھانچے میں محفوظ کرتا ہے۔ اس ڈھانچے کے ارکان میں سے ایک ہے۔ st_size ، جو فائل کا سائز بائٹس میں دیتا ہے۔ یہ طریقہ فائل پوائنٹر کو دستی طور پر منتقل کرنے سے گریز کرتا ہے، جس سے اسے استعمال کرنا آسان اور غلطی کا خطرہ کم ہوتا ہے۔



# شامل کریں
#include

اہم int ( )
{
ساخت اسٹیٹ st;
طویل سائز ;
اگر ( اسٹیٹ ( 'C_File.txt' ، اور st ) == 0 )
{
سائز = st.st_size؛
printf ( فائل کا سائز %ld بائٹس ہے۔ \n ' ، سائز ) ;
}
واپسی 0 ;
}


یہ کوڈ نامی فائل کے سائز کو بازیافت کرتا ہے۔ C_File.txt کا استعمال کرتے ہوئے stat() سے طریقہ کتب خانہ. دی st_size struct stat کا عنصر، جس میں فنکشن فائل کے بارے میں معلومات رکھتا ہے، اور ہمیں فائل کا سائز تلاش کرنے کی اجازت دیتا ہے۔ فائل کا سائز متغیر سائز میں رکھا جاتا ہے، اور پھر printf() ایک پیغام کے ساتھ کنسول پر سائز پرنٹ کرنے کے لیے استعمال کیا جاتا ہے۔ تک رسائی حاصل کرنے کی کوشش کرنے سے پہلے st_size پراپرٹی، اگر بیان اس بات کی تصدیق کرتا ہے۔ stat() فنکشن کال کامیاب رہی۔ کوڈ پھر 0 لوٹاتا ہے یہ ظاہر کرنے کے لیے کہ یہ کامیابی سے چلا۔





آؤٹ پٹ


2: fstat() فنکشن کا استعمال

کی طرح ایک اور فنکشن stat() ہے fstat() فنکشن، جو اس کے برابر ہے۔ stat() لیکن فائل نام کی بجائے کھلی فائل پر کام کرتا ہے۔ دی fstat() فنکشن کے ذریعہ بیان کردہ کھلی فائل کے بارے میں معلومات بازیافت کرتا ہے۔ فائل کی وضاحت کرنے والا اس کے پاس گیا. ایک کھلی فائل کا حوالہ انٹیجر سے ظاہر ہوتا ہے۔ فائل کی وضاحت کرنے والا . اسی طرح سے اسٹیٹ()، fstat() فراہم کردہ فائل کے بارے میں اسٹیٹس کی معلومات واپس کرتا ہے، بشمول اس کا سائز بائٹس میں۔



# شامل کریں
#include
#include

اہم int ( ) {
int fd;
ساخت اسٹیٹ st;
fd = کھلا۔ ( 'C_File.txt' , O_RDONLY ) ;
اگر ( حالت ( ایف ڈی، اور st ) == - 1 ) {
printf ( 'فائل کی معلومات حاصل کرنے میں خرابی۔ \n ' ) ;
واپسی 1 ;
}
printf ( فائل کا سائز %ld بائٹس ہے۔ \n ' , st.st_size ) ;
بند کریں ( fd ) ;
واپسی 0 ;
}


مذکورہ کوڈ میں، فائل کو ابتدائی طور پر اس مثال میں کال کرکے کھولا جاتا ہے۔ کھولیں() فائل نام اور کے ساتھ فنکشن O_RDONLY آپشن، جو فائل کو صرف پڑھنے کے موڈ میں کھولتا ہے۔ اے فائل کی وضاحت کرنے والا (fd) فنکشن کے ذریعہ واپس کیا جاتا ہے۔ اس کے بعد، ہم استعمال کرتے ہیں fstat() فائل کے بارے میں معلومات حاصل کرنے کا طریقہ، اسے پوائنٹر کے طور پر بھیجنا st ڈھانچہ دوسرے پیرامیٹر کے طور پر اور فائل ڈسکرپٹر کو پہلی دلیل کے طور پر۔ دی st ڈھانچہ وہ جگہ ہے جہاں یہ فنکشن فائل کی معلومات کو بازیافت کرنے کے بعد رکھتا ہے۔

بائٹس میں فائل کا سائز، جس میں رکھا جاتا ہے۔ st_size کے رکن st ڈھانچہ، پھر پرنٹ کیا جاتا ہے اگر استعمال کرتے وقت کوئی خرابی نہ ہو۔ fstat() فنکشن دوسری صورت میں، یہ ایک غلطی کا پیغام پرنٹ کرتا ہے.

آؤٹ پٹ


3: fseek() اور ftell() فنکشنز کا استعمال

سی پروگرامنگ میں فائل کا سائز معلوم کرنے کا ایک اور طریقہ استعمال کرنا ہے۔ fseek() اور ftell() افعال. دی ftell() طریقہ فائل پوائنٹر کی موجودہ پوزیشن واپس کرتا ہے، جبکہ fseek() فنکشن فائل پوائنٹر کو فائل میں دی گئی جگہ پر لے جاتا ہے۔ بائٹس میں فائل کا سائز استعمال کرکے پایا جاسکتا ہے۔ ftell() استعمال کرنے کے بعد موجودہ پوزیشن حاصل کرنے کے لیے فنکشن fseek() فائل پوائنٹر کو فائل کے آخر میں منتقل کرنے کا فنکشن۔

# شامل کریں
# شامل کریں

اہم int ( )
{
فائل * fp
طویل سائز ;

fp = fopen ( 'C_File.txt' ، 'ر ب' ) ;
fseek ( fp, 0L, SEEK_END ) ;
سائز = ftell ( fp ) ;
fclose ( fp ) ;
printf ( 'فائل کا سائز = %ld بائٹس۔ \n ' ، سائز ) ;

واپسی 0 ;
}


مندرجہ بالا کوڈ میں، کا استعمال کرتے ہوئے fopen() طریقہ، درخواست سب سے پہلے کھولتا ہے C_File.txt بائنری موڈ میں دی fseek() فنکشن پھر استعمال کرتا ہے۔ SEEK_END فائل پوائنٹر کو فائل کے اختتام پر منتقل کرنے کا اختیار۔ فائل کا موجودہ مقام، جو بائٹس میں اس کے سائز سے مساوی ہے، پھر استعمال کرتے ہوئے پایا جا سکتا ہے۔ ftell() فنکشن کوڈ پھر استعمال کرتا ہے۔ fclose() فائل کے سائز کو کنسول میں پرنٹ کرنے کے بعد فائل کو بند کرنے کا طریقہ۔

آؤٹ پٹ


4: فائل لینتھ () فنکشن کا استعمال

اگلا طریقہ فائل مینجمنٹ لائبریری کا استعمال کرتے ہوئے ہے، جو فائل میں ہیرا پھیری کے بہت سے افعال فراہم کرتا ہے، بشمول ایک فائل کا سائز . مثال کے طور پر، فنکشن فائل کی لمبائی () فائل کی لمبائی کو بائٹس میں لوٹاتا ہے، اس کا فائل نام دیا جاتا ہے۔ اس فنکشن کو ہیڈر فائل کی ضرورت ہے۔ .

ایک اور فنکشن بھی ہے، _fileengthi64()، جو 4 جی بی سے بڑی فائلوں کے لیے بائٹس میں فائل کی لمبائی لوٹاتا ہے۔ دونوں فنکشنز کے درمیان فرق ان کی واپسی کی قدروں کی قسم ہے، جو ظاہر کرتا ہے کہ فنکشن کتنے بائٹس کو سنبھال سکتا ہے۔

# شامل کریں
# شامل کریں

اہم int ( )
{
طویل سائز ;
چار * fname = 'C_File.txt' ;
سائز = فائل کی لمبائی ( فائلنو ( fopen ( نام 'ر ب' ) ) ) ;
printf ( 'فائل کا سائز = %ld بائٹس۔ \n ' ، سائز ) ;

واپسی 0 ;
}


فائل کا سائز C_File.txt in bytes اس کوڈ کے ذریعے ونڈوز فائل مینجمنٹ لائبریری کا استعمال کرتے ہوئے حاصل کیا جاتا ہے۔ جب کھلی فائل کا فائل ڈسکرپٹر فراہم کیا جائے تو طریقہ فائل کی لمبائی () بائٹس میں فائل کی لمبائی واپس کرتا ہے۔

fopen() اس کوڈ میں فائل کو صرف پڑھنے کے بائنری موڈ میں کھولتا ہے، اور فائلنو() کھولی ہوئی فائل کا فائل ڈسکرپٹر واپس کرتا ہے۔ پھر، printf() فائل کا سائز پرنٹ کرنے کے لیے استعمال کیا جاتا ہے۔ فنکشن پھر 0 لوٹاتا ہے جو اس بات کی نشاندہی کرتا ہے کہ اسے کامیابی کے ساتھ انجام دیا گیا ہے۔

آؤٹ پٹ


نتیجہ

تلاش کرنے کے کئی طریقے ہیں۔ C میں بائٹس میں فائل کا سائز ، ہر ایک کے اپنے فوائد اور نقصانات ہیں۔ اوپر ٹیوٹوریل میں چار مختلف طریقوں پر بات کی گئی ہے۔ stat() فنکشن، fstat() فنکشن، fseek() اور ftell() افعال، اور فائل کی لمبائی () فنکشن ان افعال کو سمجھنے سے صارفین کو آپ کے سسٹم پر کسی بھی فائل کا سائز تلاش کرنے میں مدد ملے گی۔