1 00:00:00,000 --> 00:00:02,760 [Powered by Google Translate] [গত সপ্তাহে 5] 2 00:00:02,760 --> 00:00:04,760 [ডেভিড জে Malan, হার্ভার্ড বিশ্ববিদ্যালয়] 3 00:00:04,760 --> 00:00:11,990 [এটি CS50.] [CS50.TV] 4 00:00:11,990 --> 00:00:17,780 [নারী] তিনি এর মিথ্যা; সম্পর্কে কি, আমি জানি না. 5 00:00:17,780 --> 00:00:20,300 [ম্যান] সুতরাং আমরা কি জানি? 6 00:00:20,300 --> 00:00:24,120 [নারী] যে 9:15 এ রায় Santoya এটিএম এ ছিল. 7 00:00:24,120 --> 00:00:27,420 [ম্যান] সুতরাং প্রশ্ন কি, না ছিল সে সময়ে 9:16 করছেন? 8 00:00:27,420 --> 00:00:29,980 [নারী] কিছু এ 9 মিমি শ্যুটিং. 9 00:00:29,980 --> 00:00:31,900 হয়তো তিনি Sniper দেখেছি. 10 00:00:31,900 --> 00:00:34,000 [ম্যান] অথবা তিনি তার সঙ্গে কাজ করছেন. 11 00:00:34,000 --> 00:00:36,330 [নারী]. অপেক্ষা করুন এক ফিরে যান. 12 00:00:36,330 --> 00:00:38,330 [ম্যান] আপনি কি কি? 13 00:00:38,330 --> 00:00:44,520 [♫ ♫ উত্কণ্ঠাময় অনিশ্চয়তাপূর্ণ সঙ্গীত] 14 00:00:44,520 --> 00:00:48,320 [নারী] তার মুখ আপ আনুন. সম্পূর্ণ পর্দা. 15 00:00:48,320 --> 00:00:51,230 [মানুষ] তার চশমা. >> একটি প্রতিফলন আছে. 16 00:00:51,230 --> 00:01:00,810 [♫ ♫ উত্কণ্ঠাময় অনিশ্চয়তাপূর্ণ সঙ্গীত] 17 00:01:00,810 --> 00:01:03,580 [ম্যান] এটা Nuevita এর বেসবল টিম. এটা তাদের লোগো. 18 00:01:03,580 --> 00:01:07,790 [নারী] এবং তিনি যে কেহ যে জ্যাকেট এর পরেছে বলছেন এর. 19 00:01:07,790 --> 00:01:13,730 >> [ডেভিড Malan] তো, এই হচ্ছে CS50 সপ্তাহ 5, এবং আজকে আমরা আপনার জন্য টেলিভিশন এবং চলচ্চিত্রের একটি বিট নিকুচি. 20 00:01:13,730 --> 00:01:16,170 তাই যখনই আপনি এখানে এই মত একটি শো দেখছেন, 21 00:01:16,170 --> 00:01:19,910 এবং cops বলবে "যা আপনাকে পরিষ্কার করতে পারি?" বা "উন্নত" 22 00:01:19,910 --> 00:01:21,900 বাস্তব বিশ্বের কোন উন্নত আছে. 23 00:01:21,900 --> 00:01:25,220 আসলে, আপনি কি সত্যিই পেতে একটি ভালো সামান্য কিছু. 24 00:01:25,220 --> 00:01:27,570 আমি পাতা থেকে কর্মীদের ফটো এক গুটান করেছি. 25 00:01:27,570 --> 00:01:30,980 এটি একটি প্রোগ্রাম নামক ফটোশপ. এটি 2 Bowdens 1, 26 00:01:30,980 --> 00:01:36,300 1 থেকে 3 প্রকৃতপক্ষে Bowdens, আজ, কারণ আমরা মিসেস Bowden এখানে আছে রব এবং পল সঙ্গে হিসাবে ভাল,. 27 00:01:36,300 --> 00:01:41,950 কিন্তু এখানে পর্দায় হয় রব, এবং যদি আমরা যে ঝলমল করা জুম তিনি তার চোখে সবসময় এর ছিল, 28 00:01:41,950 --> 00:01:47,600 আপনি কি আসলে দেখতে হয় যে আপনি কি কি দেখতে পাবেন. 29 00:01:47,600 --> 00:01:51,690 এটি "উন্নত," তাই "সিএসআই" আছে এটি ভুল. 30 00:01:51,690 --> 00:01:55,190 অন্য একটি ক্লিপ আছে, যদি আমরা "সিএসআই" অল্পমাত্র বিট আর উপর বাছাই করতে পারেন. 31 00:01:55,190 --> 00:01:58,500 এই এক একটি সুন্দর শব্দগুচ্ছ অত কহা আপনি চাইলে 32 00:01:58,500 --> 00:02:10,280 আপনার বন্ধুদের সঙ্গে প্রযুক্তিগত নিস্বন যখন, সত্যিই, আপনি একেবারে কিছুই বলছে. 33 00:02:10,280 --> 00:02:12,970 >> [ম্যান] সপ্তাহের জন্য আমি হয়েছি কোচোয়ান Killer হত্যার তদন্ত 34 00:02:12,970 --> 00:02:15,360 একটি নির্দিষ্ট রোগগ্রস্ত মোহ. 35 00:02:15,360 --> 00:02:17,160 [নারী # 1] এই রিয়েল টাইমে হয়. 36 00:02:17,160 --> 00:02:22,930 [নারী # 2] আমি একটি GUI ইন্টারফেসের ভিসুয়াল বেসিক ব্যবহার করে তৈরি, যদি আমি একটি IP ঠিকানা ট্র্যাক করতে পারেন দেখতে পাবেন. 37 00:02:22,930 --> 00:02:29,570 >> [Malan] সুতরাং সিঙ্ক সরাইয়া অডিও আউট, একটি GUI ইন্টারফেসের ভিসুয়াল বেসিক ব্যবহার করে তৈরি করা 38 00:02:29,570 --> 00:02:31,820 একটি IP ঠিকানা ট্র্যাক সম্পূর্ণ অর্থহীন বিষয়. 39 00:02:31,820 --> 00:02:33,840 এই দিন আপনি ভিসুয়াল বেসিক ব্যবহার করতে চাই, 40 00:02:33,840 --> 00:02:38,920 একটি GUI জন্য কোন প্রয়োজন নেই, এবং আইপি ঠিকানা ছিল একটি টেকনিক্যালি সঠিক শব্দ. 41 00:02:38,920 --> 00:02:41,730 তাই নজর রাখা এই জন্য, এবং আমার প্রিয় এক: 42 00:02:41,730 --> 00:02:45,070 এই এক একটা সামান্য আরো রহস্যময়, কারণ আপনি একটি আলাদা ভাষা জানা প্রয়োজন. 43 00:02:45,070 --> 00:02:47,860 একটি ভাষা বলা Objective-C, যা সি একটি সুপারসেটও আছে 44 00:02:47,860 --> 00:02:51,960 তা এর সি প্লাস কিছু অতিরিক্ত বৈশিষ্ট্য, তাদের অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং মধ্যে মানে. 45 00:02:51,960 --> 00:02:55,070 এবং এই ভাষা যে Apple iOS প্রোগ্রামিং জন্য জনপ্রিয় করেনি. 46 00:02:55,070 --> 00:02:58,760 তাই এখানে থেকে একটি ভিন্ন সম্পূর্ণভাবে শো থেকে একটি ক্লিপ, "সংখ্যা," 47 00:02:58,760 --> 00:03:02,450 যে আসলে আপনি যদি আপনার TiVo এবং বিরাম ডান মুহূর্ত তাকান ঘনিষ্ঠভাবে, 48 00:03:02,450 --> 00:03:07,700 আপনি যে কি তারা এ খুঁজছেন তা পুরোপুরি বর্ণিত কি হচ্ছে দেখতে পাবেন. 49 00:03:07,700 --> 00:03:11,170 এবং আমাকে এখানে একটি ভিন্ন অডিও সংযোগকারী চেষ্টা এবং যদি আমরা নারা দেখুন 50 00:03:11,170 --> 00:03:13,780 সিঙ্ক অডিও এই সময় রাখা. 51 00:03:13,780 --> 00:03:20,530 আমি আপনাকে "সংখ্যা." 52 00:03:20,530 --> 00:03:23,240 >> [ম্যান # 1] এটি একটি 32 বিট IPv4 ঠিকানা. 53 00:03:23,240 --> 00:03:38,930 [ম্যান # 2] আইপি, যে ইন্টারনেট. >> বেসরকারী নেটওয়ার্ক. এটা Anita এর প্রাইভেট নেটওয়ার্ক. 54 00:03:38,930 --> 00:03:43,810 [Malan] ঠিক আছে. এটি Objective-C, এবং এটি কিছু ছাগলছানা রঙ এর প্রোগ্রাম এর জন্য, 55 00:03:43,810 --> 00:03:51,140 হিসাবে আপনি সম্ভবত সেখানে ভেরিয়েবলের নাম থেকে আবিষ্কার করতে পারেন. 56 00:03:51,140 --> 00:03:54,410 যাতে পরে,, ছিল "সংখ্যা." তাই আজ এবং এই সপ্তাহে আমরা পরিচয় করিয়ে 57 00:03:54,410 --> 00:03:57,740 একটি ফরেনসিক এবং সেইজন্য সমস্যার মধ্যে প্রসঙ্গের দুনিয়া সামান্য বিট. 58 00:03:57,740 --> 00:04:00,590 আজ একটি সংক্ষিপ্ত বক্তৃতা কারণ এখানে একটি বিশেষ ঘটনা আছে হবে 59 00:04:00,590 --> 00:04:05,530 পরে, তাই আমরা একটি উঁকি নিতে, এবং জ্বালাতন করা হবে উভয় ছাত্র এবং অভিভাবকদের একইভাবে আজ 60 00:04:05,530 --> 00:04:07,420 সঙ্গে জিনিষ দিগন্ত উপর যা কিছু. 61 00:04:07,420 --> 00:04:12,240 সারাংশ সোমবার হিসাবে তাদের মধ্যে,, আপনি আরো কয়েকটি সহপাঠীদের থাকবে. 62 00:04:12,240 --> 00:04:16,050 EdX, হার্ভার্ড এবং MITs নতুন খোলা courseware জন্য অনলাইন উদ্যোগ 63 00:04:16,050 --> 00:04:19,120 এবং আরো, হার্ভার্ড এর উপর সোমবার ক্যাম্পাস চালু করছে. 64 00:04:19,120 --> 00:04:21,490 সর্বশেষ হিসাবে গণনা, - যার অর্থ আসা সোমবার আপনি থাকবে 65 00:04:21,490 --> 00:04:26,210 86.000 অতিরিক্ত সহপাঠীদের CS50 এর বক্তৃতা সঙ্গে বরাবর অনুসরণ করা হবে 66 00:04:26,210 --> 00:04:29,170 ও বিভাগে এবং এগিয়ে যান এবং সমস্যা সেট. 67 00:04:29,170 --> 00:04:32,350 এবং এই অংশ হিসাবে, আপনি উদ্বোধনী বর্গ সদস্য হতে হবে 68 00:04:32,350 --> 00:04:35,090 CS50 এবং এখন CS50x. 69 00:04:35,090 --> 00:04:39,310 >> এই অংশ হিসাবে এখন, বুঝতে পারেননি, যে হিসাবে ভাল কিছু upsides হতে হবে. 70 00:04:39,310 --> 00:04:43,790 ছাত্রদের জন্য এ বিশাল নম্বর পেতে এই জন্য প্রস্তুত,, 71 00:04:43,790 --> 00:04:47,180 এটা বলার জন্য যথেষ্ট যে যদিও আমরা 108 টিএফএস এবং সি এ এস আছে, 72 00:04:47,180 --> 00:04:50,790 না বেশ ভাল ছাত্র / শিক্ষক অনুপাত একবার আমরা 80,000 অন্যান্য ছাত্র আঘাত. 73 00:04:50,790 --> 00:04:52,850 তাই আমরা অনেক সমস্যা শূন্য করা চলুন না ম্যানুয়ালি সেট করে. 74 00:04:52,850 --> 00:04:55,920 সুতরাং সমস্যা সেট চালু এই সপ্তাহে CS50 চেক করা হবে, 75 00:04:55,920 --> 00:04:58,450 যা প্রয়োগ মধ্যে একটি কমান্ড লাইন থেকে ব্যবহারযোগ্য হবে 76 00:04:58,450 --> 00:05:01,200 যে আপনি একবার আপনি পরে এটা আপডেট এই সপ্তাহান্তে পাবেন, 77 00:05:01,200 --> 00:05:03,200 এবং আপনি একটি কমান্ড চালাতে সক্ষম হবেন, 50 চেক, 78 00:05:03,200 --> 00:05:06,500 আপনার নিজস্ব pset উপর, এবং আপনি কিনা আপনার প্রোগ্রাম হিসাবে কিছু প্রতিক্রিয়া পাবেন 79 00:05:06,500 --> 00:05:11,160 সঠিক বা ভুল অনুযায়ী বিভিন্ন নকশা নির্দিষ্টকরণের যে আমরা প্রদান করে থাকেন. 80 00:05:11,160 --> 00:05:13,580 যে যাতে আরও বেশি এবং সমস্যা সেট স্পেসিফিকেশন এবং 81 00:05:13,580 --> 00:05:17,240 CS50x সহপাঠীদের এই হিসাবে ভাল ব্যবহার করা হবে. 82 00:05:17,240 --> 00:05:19,230 >> সুতরাং সমস্যা সেট 4 ফরেনসিক সম্পর্কে সব. 83 00:05:19,230 --> 00:05:21,940 এবং এই টুকরা কিছু বাস্তব জীবনের স্টাফ দ্বারা অনুপ্রাণিত হয়, 84 00:05:21,940 --> 00:05:24,620 তদ্দ্বারা আমি যখন গ্র্যাজুয়েট স্কুলে ছিল, আমি কিছুদিনের জন্য অন্তরীণ সঙ্গে 85 00:05:24,620 --> 00:05:28,650 MIDDLESEX কাউন্টি এর জেলা অ্যাটর্নি কার্যালয় ফরেনসিক কাজ করছেন 86 00:05:28,650 --> 00:05:31,650 তাদের নেতৃত্ব ফরেনসিক তদন্তকারী সঙ্গে, এবং কি এই যাও amounted 87 00:05:31,650 --> 00:05:35,260 না, আমি মনে করি আমি কয়েক সপ্তাহ এর অতীত উল্লেখ করেছে, একটি গণ রাজ্য পুলিশ বা অন্যদের 88 00:05:35,260 --> 00:05:39,000 আসা হবে না, তারা হার্ড ড্রাইভ এবং সিডি এবং ফ্লপি ডিস্কের মত কাজ করবে খসা 89 00:05:39,000 --> 00:05:42,340 এবং ভালো, এবং তারপরে নিরূপণ ফরেনসিক অফিসে লক্ষ্য ছিল কিনা 90 00:05:42,340 --> 00:05:44,600 বা ছিল কিছু ধরণের প্রমাণ ছিল না. 91 00:05:44,600 --> 00:05:48,010 এই বিশেষ অনুসন্ধানের ইউনিট, তাই এটি ছিল বাবু অপরাধ, 92 00:05:48,010 --> 00:05:52,350 এটি ছিল অপরাধের আরো সমস্যাগ্রস্থ সাজানোর, 93 00:05:52,350 --> 00:05:55,990 কিছু ডিজিটাল মিডিয়ার কিছু ধরনের ব্যবস্থাপনা করা; সক্রিয় আউট না যে অনেক মানুষ 94 00:05:55,990 --> 00:05:59,370 একটি ইমেল করে বলে যে "আমি তা." লিখুন 95 00:05:59,370 --> 00:06:03,290 সেজন্য প্রায়ই এই ফরেনসিক অনুসন্ধান সব যে অনেক ফলের আপ না করেন, 96 00:06:03,290 --> 00:06:05,850 তবে কখনও কখনও মানুষ যেমন ইমেল লিখতে হবে. 97 00:06:05,850 --> 00:06:08,490 তাই কখনও কখনও প্রচেষ্টা পুরস্কৃত হয়েছে. 98 00:06:08,490 --> 00:06:14,420 >> কিন্তু এই ফরেনসিক pset যাও যাত্তয়া, আমরা pset 4 গ্রাফিক্স একটি বিট হবে পরিচায়ক. 99 00:06:14,420 --> 00:06:18,260 কাজেই সম্ভবত আপনার দেওয়া, JPEGs, gifs এবং এইসব দিন ভালো জন্য এই জিনিস নিতে, 100 00:06:18,260 --> 00:06:21,640 কিন্তু আপনি যদি সত্যিই এটা আমার মনে হয়, একটি চিত্র, অনেক ভালো রব এর মুখ, 101 00:06:21,640 --> 00:06:24,430 বিন্দু একটি অনুক্রম, বা পিক্সেল হিসাবে স্থাপিত হতে পারে. 102 00:06:24,430 --> 00:06:26,680 Rob এর মুখ ক্ষেত্রে এখন,, রং সমস্ত প্রকারের আছে, 103 00:06:26,680 --> 00:06:29,940 এবং আমরা পৃথক বিন্দু, পিক্সেল হিসাবে পরিচিত otherwide দেখতে শুরু করে, 104 00:06:29,940 --> 00:06:31,610 একবার আমরা ইন জুম শুরু 105 00:06:31,610 --> 00:06:35,590 কিন্তু আমরা যদি একটু অজটিল দুনিয়া, এবং ঠিক এই যে এখানে রব বলে 106 00:06:35,590 --> 00:06:40,560 কালো এবং সাদা, ভাল, উপস্থাপন কালো এবং সাদা আমরা শুধু বাইনারি ব্যবহার করতে পারেন. 107 00:06:40,560 --> 00:06:44,960 এবং যদি আমরা বাইনারি ব্যবহার করতে যাচ্ছেন, 1 অথবা 0, আমরা এই একই চিত্র প্রকাশ করতে পারেন 108 00:06:44,960 --> 00:06:51,970 Rob এর বিট এই প্যাটার্ন সঙ্গে মুখের স্মিত: 11000011 উপস্থাপন 109 00:06:51,970 --> 00:06:55,160 সাদা, সাদা, কালো, কালো, কালো, কালো, সাদা সাদা. 110 00:06:55,160 --> 00:06:59,290 এবং তাই, তারপরে একটা বিশাল লাফ দিতে পারলে না, যাও রঙিন ফটোগ্রাফ সম্পর্কে কথা বলা শুরু. 111 00:06:59,290 --> 00:07:01,920 যে আপনি ফেসবুকে অথবা একটি ডিজিটাল ক্যামেরা সঙ্গে নিতে দেখতে চাই, 112 00:07:01,920 --> 00:07:04,730 কিন্তু অবশ্যই, যখন এটি রং আসে, আপনি আরো বিট প্রয়োজন. 113 00:07:04,730 --> 00:07:08,470 ফটোগ্রাফ এবং বিশ্বের বেশ সাধারণ রং 1 বিট ব্যবহার না হয়, 114 00:07:08,470 --> 00:07:12,730 হিসাবে এই প্রস্তাব দেওয়া হয়, কিন্তু 24 বিট রঙ, যেখানে আসলে আপনি রং লক্ষ লক্ষ পেতে. 115 00:07:12,730 --> 00:07:15,430 সুতরাং হিসাবে ক্ষেত্রে যখন আমরা রব এর চোখে জুম, 116 00:07:15,430 --> 00:07:19,270 যে ছিল বিভিন্ন রঙিন সম্ভাবনার লক্ষ লক্ষ কোনো নম্বর. 117 00:07:19,270 --> 00:07:22,260 >> সুতরাং আমরা সমস্যা সেট 4 হিসাবে পাশাপাশি walkthrough এই পরিচয় করিয়ে দেব, 118 00:07:22,260 --> 00:07:27,050 যা স্বাভাবিকের 2:30 পরিবর্তে 3:30 হতে কারণ শুক্রবার এর এখানে বক্তৃতা আজকের হবে. 119 00:07:27,050 --> 00:07:29,930 কিন্তু ভিডিও অনলাইন, স্বাভাবিক হিসাবে, আগামীকাল হতে হবে. 120 00:07:29,930 --> 00:07:31,880 আমরা অন্য ফাইল ফরম্যাট আপনাকে পরিচয় করিয়ে দেব. 121 00:07:31,880 --> 00:07:34,150 তাই ইচ্ছাকৃতভাবে এই প্রথম এ ভয় চেহারা রাখা, 122 00:07:34,150 --> 00:07:38,980 কিন্তু এটি শুধু একটি সি struct জন্য কিছু ডকুমেন্টেশন. 123 00:07:38,980 --> 00:07:42,280 এটি সক্রিয় যে মাইক্রোসফট বছর আগে, এই বিন্যাসে লোকায়ত সাহায্য, 124 00:07:42,280 --> 00:07:46,630 বিটম্যাপ নামক ফাইল ফরম্যাট, BMP, এবং এই ছিল একটি অতি - সহজ, 125 00:07:46,630 --> 00:07:50,390 আনন্দময় গ্রাফিক্যাল ফাইল ফরম্যাট যে বেশ কিছু সময় ব্যবহার করা হয় 126 00:07:50,390 --> 00:07:53,640 এবং কখনও কখনও এখনও জন্য ডেস্কটপের ওয়ালপেপার উপর. 127 00:07:53,640 --> 00:07:57,410 আপনি যদি উইন্ডোজ এক্সপি এবং ঘূর্ণায়মান পাহাড় এবং নীল আকাশ ফিরে মনে, 128 00:07:57,410 --> 00:08:00,660 সাধারণত যে ছিল একটি BMP, বা বিটম্যাপ ইমেজ, এবং বিটম্যাপ 129 00:08:00,660 --> 00:08:03,340 আমাদের জন্য মজা কারণ তারা কিছুটা জটিলতা আছে. 130 00:08:03,340 --> 00:08:05,640 এটা বেশ 0 এবং 1 এর এর এই গ্রিড হিসাবে সহজ নয়; 131 00:08:05,640 --> 00:08:10,680 পরিবর্তে, আপনি একটি ফাইল শুরু করার একটি হেডার মত জিনিষ আছে. 132 00:08:10,680 --> 00:08:15,520 সুতরাং একজন. Bmp ফাইল ভিতর অন্য কথায়, একটি 0 এবং 1 এর এর আভা, 133 00:08:15,520 --> 00:08:18,070 কিন্তু কিছু অতিরিক্ত 0 এবং এর মধ্যে আছে 1 এর আছে. 134 00:08:18,070 --> 00:08:21,450 এবং এটি সক্রিয় যে কি সম্ভবত আমরা গ্রহণ করেছি বছর জন্য জন্য দেয়া হয়, 135 00:08:21,450 --> 00:08:27,040 . doc বা. xls বা. mp3 বা. mp4 মত ফাইল ফরম্যাটের, 136 00:08:27,040 --> 00:08:29,910 যাহা - কিছু ফাইল ফরম্যাটের যে আপনি পরিচিত. 137 00:08:29,910 --> 00:08:31,900 ভাল, কি এমনকি এটা একটি ফাইল ফরম্যাট করা মানে? 138 00:08:31,900 --> 00:08:35,740 এ দিনের শেষে কারণ, সমস্ত ফাইলগুলির আমরা ব্যবহার আছে কেবল 0 ও 1 এর 139 00:08:35,740 --> 00:08:39,950 এবং হয়ত যারা এর 0 এবং 1 এর একটি, খ, গ, বা মাধ্যমে ASCII ভালো, প্রতিনিধিত্ব 140 00:08:39,950 --> 00:08:42,030 কিন্তু দিনের শেষে মাধ্যমে, এটি শুধু এর 0 এবং 1 এর. 141 00:08:42,030 --> 00:08:45,300 >> তাই শুধু মানুষের মাঝে একটি নতুন ফাইল ফরম্যাট উদ্ভাবিত সিদ্ধান্ত 142 00:08:45,300 --> 00:08:49,420 যেখানে তারা কি আসলে বিট প্যাটার্নের অর্থ হবে প্রমিত. 143 00:08:49,420 --> 00:08:52,790 এবং এখানে এই ক্ষেত্রে, লোকেরা যারা বিটম্যাপ ফাইল ফরম্যাট পরিকল্পিত 144 00:08:52,790 --> 00:08:58,260 তিনি আরো বলেন যে একটি বিটম্যাপ ফাইলের মধ্যে প্রথম বাইট এ, হিসাবে অফসেট 0 দ্বারা denoted, সেখানে, 145 00:08:58,260 --> 00:09:02,320 গিয়ে কিছু cryptically নামে পরিবর্তনশীল নামক bfType করা আছে এর, 146 00:09:02,320 --> 00:09:06,510 যা শুধু বিটম্যাপ ফাইল টাইপ জন্য দাঁড়িয়েছে; কি বিটম্যাপ ফাইলের ধরন এই হয়. 147 00:09:06,510 --> 00:09:10,780 আপনি, দ্বিতীয় সারিতে যে 2 অফসেট, বাইট 2 নম্বর থেকে সম্ভবত আবিষ্কার করতে পারেন, 148 00:09:10,780 --> 00:09:15,980 0 এবং 1 এর এর যে কি প্রতিনিধিত্ব করে একটি প্যাটার্ন আছে? 149 00:09:15,980 --> 00:09:18,320 কিছু আকার, এবং এটি থেকে সেখানে যায়. 150 00:09:18,320 --> 00:09:20,660 সুতরাং সমস্যা সেট 4, আপনি এইসব জিনিস কিছু মাধ্যমে পাবেন করা পদচারণা. 151 00:09:20,660 --> 00:09:24,480 >> আমরা শেষ পর্যন্ত তাদের সব বিষয়ে চিন্তা করা হইনি, কিন্তু লক্ষ্য করা হবে এটি আকর্ষণীয় পেতে আরম্ভ 152 00:09:24,480 --> 00:09:30,780 চারপাশে লাইন বা বাইট 54, rgbtBlue, সবুজ এবং লাল. 153 00:09:30,780 --> 00:09:35,280 আপনি যদি কখনও আদ্যক্ষরা আরজিবি, লাল সবুজ নীল করেছি শুনেছেন, এই যে একটি রেফারেন্স. 154 00:09:35,280 --> 00:09:37,840 কারণ এটি সক্রিয় আউট আপনি সব রামধনু রঙ আঁকা যাবে 155 00:09:37,840 --> 00:09:41,580 সঙ্গে লাল এবং নীল এবং সবুজ কিছু সংমিশ্রণ. 156 00:09:41,580 --> 00:09:46,560 আসলে,, রুমে বাবা নিকটতম প্রজেক্টর কিছু প্রত্যাহার করা হতে পারে. 157 00:09:46,560 --> 00:09:49,360 এই দিন, আপনার 1 উজ্জ্বল আলো লেন্সের আসছে আউট দেখতে. 158 00:09:49,360 --> 00:09:52,870 কিন্তু দিনে, আপনি লাল লেন্স, লেন্স নীল, সবুজ এবং লেন্স ছিল 159 00:09:52,870 --> 00:09:56,620 এবং তারা একসঙ্গে পর্দা যার লক্ষ্য এবং একটি রঙিন ছবি গঠিত. 160 00:09:56,620 --> 00:09:59,590 এবং বেশ প্রায়ই মধ্যম বিদ্যালয় এবং উচ্চ বিদ্যালয় যারা লেন্স আছে 161 00:09:59,590 --> 00:10:02,680 সদা তাই সামান্য বাঁকাভাবে, তাই আপনি ছিল ডবল অথবা ট্রিপল চিত্র বাছাই করা, 162 00:10:02,680 --> 00:10:07,500 কিন্তু যে ধারণা ছিল. আপনি লাল এবং সবুজ এবং নীল আলো একটি ছবি অলঙ্কার ছিল. 163 00:10:07,500 --> 00:10:09,570 এবং যে একই নীতি কম্পিউটারে ব্যবহৃত হয়. 164 00:10:09,570 --> 00:10:12,000 >> সমস্যা যাতে মধ্যে চ্যালেঞ্জ, তারপর, আপনার জন্য 4 সেট 165 00:10:12,000 --> 00:10:16,080 যাও কিছু বিষয় হতে যাচ্ছি; এক প্রকৃতপক্ষে একটি চিত্র মাপ পরিবর্তন হয়. 166 00:10:16,080 --> 00:10:18,050 0 এবং 1 এর এর একটি প্যাটার্ন নিয়ে, 167 00:10:18,050 --> 00:10:22,840 জিনিসটা যা 0 এবং 1 এর এর একটি অংশ গঠন কি ভালো প্রতিনিধিত্ব করেন, 168 00:10:22,840 --> 00:10:26,800 এবং তারপর চিন্তা করা কিভাবে পিক্সেল প্রতিলিপি নির্মাণ: reds, ব্লুজ, সবুজ শাক সব্জী 169 00:10:26,800 --> 00:10:32,460 ভিতরে যাতে যখন একটি ছবি ভালো প্রথমে দেখাচ্ছে, পরিবর্তে ভালো যে দেখাশোনা হতে পারে. 170 00:10:32,460 --> 00:10:35,590 অন্যান্য চ্যালেঞ্জের মধ্যে খুব,, যে আপনি পাবেন হস্তান্তর করা হবে 171 00:10:35,590 --> 00:10:38,900 একটি প্রকৃত ফাইলের ফরেনসিক একটি ডিজিটাল ক্যামেরা থেকে ইমেজ 172 00:10:38,900 --> 00:10:42,410 এবং যে ক্যামেরা সময় উপর একবার,, ছিল একটি ফটো আভা. 173 00:10:42,410 --> 00:10:47,030 সমস্যা, ঘটনাক্রমে আমরা মুছে ফেলা হয় অথবা ছবিটি ছিল একরকম দূষিত. 174 00:10:47,030 --> 00:10:51,040 ডিজিটাল ক্যামেরার সাথে খারাপ জিনিস ঘটতে হবে এবং যাতে দ্রুত আমরা এর 0 এবং 1 এর সব কপি 175 00:10:51,040 --> 00:10:55,410 বন্ধ আপনাকে যে জন্য কার্ড, 1 বড় ফাইলের মধ্যে তাদের সব সঞ্চয়, এবং তারপর আমরা তাদের আপনি হাতে পাবেন 176 00:10:55,410 --> 00:11:00,000 সমস্যার মধ্যে 4 সেট যাতে আপনি সি একটি প্রোগ্রাম যা পুনরুদ্ধার লিখতে পারেন 177 00:11:00,000 --> 00:11:02,660 যারা JPEGs সব, মনে মনে. 178 00:11:02,660 --> 00:11:06,280 এবং এটি সক্রিয় যে JPEGs আউট, যদিও তারা একটি জটিল ফাইল ফরম্যাট কিছুটা, 179 00:11:06,280 --> 00:11:09,580 তারা অনেক এই স্মিত এখানে মুখ চেয়ে আরো জটিল. 180 00:11:09,580 --> 00:11:14,320 এটা পরিনত হয় যে প্রতি কোন JPEG 0 এবং 1 এর এর একই প্যাটার্নের সঙ্গে শুরু হয়. 181 00:11:14,320 --> 00:11:18,820 সুতরাং যখন একটি লুপ বা অনুরূপ জন্য একটি লুপ বা ব্যবহার করে, 182 00:11:18,820 --> 00:11:22,350 আপনি সমস্ত 0 এর এই ফরেনসিক চিত্রে এবং 1 এর উপর পুনরুক্তি করতে পারেন 183 00:11:22,350 --> 00:11:26,670 এবং প্রত্যেক সময় আপনি বিশেষ প্যাটার্ন যে সমস্যা সেট এর স্পেসিফিকেশন সংজ্ঞায়িত হয়েছে তা দেখতে, 184 00:11:26,670 --> 00:11:29,770 আপনি খুব উচ্চ সম্ভাবনা সঙ্গে অনুমান, 'ওহ, এখানে হয়,, 185 00:11:29,770 --> 00:11:33,520 কোন JPEG শুরু, 'এবং যত তাড়াতাড়ি আপনি খুঁজে একই প্যাটার্ন, 186 00:11:33,520 --> 00:11:36,050 বাইট বা কিলোবাইট বা মেগাবাইট কিছু পরে নম্বর, 187 00:11:36,050 --> 00:11:40,550 আপনি, 'ধারনা করতে পারি বিস্ময়! এখানে একটি দ্বিতীয় কোন JPEG, আমি প্রথম ছবির পরে একটি নেন. 188 00:11:40,550 --> 00:11:44,720 সম্পর্কে যে প্রথম ফাইলটি পড়া থামাতে যাক, এই নতুন লেখা শুরু. ' 189 00:11:44,720 --> 00:11:49,980 এবং 4 pset জন্য আপনার প্রোগ্রামের আউটপুট হিসাবে অনেক হিসাবে 50 JPEGs হবে. 190 00:11:49,980 --> 00:11:52,400 এবং এটি যদি 50 JPEGs না, আপনি একটি লুপ একটি বিট আছে. 191 00:11:52,400 --> 00:11:55,580 আপনি যদি একটি JPEGs সীমাহীন নম্বর আছে, আপনি একটি অসীম লুপ আছে. 192 00:11:55,580 --> 00:11:58,280 যাতে খুব, খুব সাধারণ একটি মামলা করা হবে. 193 00:11:58,280 --> 00:12:00,280 যে দিগন্ত কি লেখা আছে তা. 194 00:12:00,280 --> 00:12:03,740 >> 0 ক্যুইজ আমাদের পিছনে. আমার ইমেল প্রতি, বুঝতে পারছি, invariably যে লোকেরা আছে 195 00:12:03,740 --> 00:12:06,820 উভয় খুশি নিরপেক্ষ মধ্যে, বাছাই করা, এবং দু: খিত ব্যঙ্গ কাছাকাছি 0 সময় যারা. 196 00:12:06,820 --> 00:12:10,160 এবং আমার কাছে পৌঁছান, মাথা টিএফএস, Zamyla, আপনার নিজের TF দয়া করে না 197 00:12:10,160 --> 00:12:14,120 সি এ এস বা এক যে আপনি কি জানেন যদি আপনি কিভাবে যে চলে গেলেন আলোচনা করতে চাই. 198 00:12:14,120 --> 00:12:16,460 >> তাই পিতামাতা ছাপ এখানে রুমে, 199 00:12:16,460 --> 00:12:23,990 CS50 লাইব্রেরি কি? গুড জব. 200 00:12:23,990 --> 00:12:32,280 CS50 লাইব্রেরি কি? হাঁ? [ছাত্র উত্তর, অপাচ্য] 201 00:12:32,280 --> 00:12:35,730 >> ঠিক আছে, ভাল. এটা একটি কোড prewritten সেট যে আমরা, কর্মী, লিখেছেন, 202 00:12:35,730 --> 00:12:38,460 আমরা আপনাকে প্রদান, কিছু সাধারণ বৈশিষ্ট্য প্রদান করে. 203 00:12:38,460 --> 00:12:42,290 সামগ্রী সম্পর্কে একটি স্ট্রিং পেতে চাই; সম্পর্কে কোন int পেতে, ফাংশন যে এখানে তালিকাভুক্ত করা হয় সব. 204 00:12:42,290 --> 00:12:45,260 এখন শুরু হচ্ছে, আমরা সত্যিই এই প্রশিক্ষণের চাকার অপসৃত করা শুরু. 205 00:12:45,260 --> 00:12:48,230 সুতরাং আমরা আপনার কাছ থেকে "স্ট্রিং" নিতে শুরু করে যাচ্ছেন, 206 00:12:48,230 --> 00:12:52,790 যা, রিকল, কি প্রকৃত তথ্য টাইপ জন্য ছিল মাত্র একটি প্রতিশব্দ? গৃহস্থালি *. 207 00:12:52,790 --> 00:12:57,020 তাই অভিভাবকদের জন্য, যে সম্ভবত ছিল - ভালো, তাই গৃহস্থালি * দেখতে আমরা শুরু করব 208 00:12:57,020 --> 00:13:00,810 পর্দায় সমস্ত আরো হিসাবে আমরা আমাদের শব্দভান্ডার থেকে "স্ট্রিং" মুছে ফেলুন, 209 00:13:00,810 --> 00:13:02,760 অন্তত যখন এটি আসলে কোড লেখা আসে. 210 00:13:02,760 --> 00:13:06,240 একইভাবে, আমরা অনেক হিসাবে এই ফাংশন ব্যবহার করে বন্ধ হবে, 211 00:13:06,240 --> 00:13:08,390 কারণ আমাদের প্রোগ্রাম আরো পরিশীলিত পেতে যাচ্ছে 212 00:13:08,390 --> 00:13:11,370 বরং শুধুমাত্র প্রোগ্রামগুলি যে প্রম্পট জ্বলজ্বলে সঙ্গে সেখানে বসতে লিখুন, 213 00:13:11,370 --> 00:13:13,580 ব্যবহারকারী যাও জন্য অপেক্ষা ইন কিছু টাইপ করুন 214 00:13:13,580 --> 00:13:15,220 আপনি অন্য কোথাও থেকে আপনার ইনপুট পাবেন. 215 00:13:15,220 --> 00:13:18,720 উদাহরণস্বরূপ, আপনার স্থানীয় হার্ড ডিস্ক বিট সিরিজ থেকে তাদের পাবেন. 216 00:13:18,720 --> 00:13:23,340 আপনি পরিবর্তে ভবিষ্যতে তাদের একটি নেটওয়ার্ক সংযোগ থেকে পাবেন, কিছু ওয়েবসাইট কোথাও. 217 00:13:23,340 --> 00:13:27,460 তাই প্রথমবার এই স্তর ছুলা এর দিন, এবং CS50 প্রয়োগ টানিয়া তোলা আপ 218 00:13:27,460 --> 00:13:32,300 এবং এই ফাইল নামক CS50.h, যা আপনি সপ্তাহের জন্য সহ চলেছি ধারালো. 219 00:13:32,300 --> 00:13:34,380 >> কিন্তু যাক এর আসলে এই ভিতরে কি দেখতে. 220 00:13:34,380 --> 00:13:38,250 তাই নীল ফাইল উপরের মাত্র একটি মন্তব্য আভা, 221 00:13:38,250 --> 00:13:41,340 পাটা তথ্য এবং লাইসেন্সিং. এটি একটি সাধারণ উদাহরণ কতকাংশে 222 00:13:41,340 --> 00:13:44,600 সফ্টওয়্যার, কারণ সফ্টওয়্যার অনেক দিন এইসব কি বলা এর "ওপেন সোর্স," 223 00:13:44,600 --> 00:13:46,940 যার অর্থ হল যে কেউ লিখিত কোড করেনি 224 00:13:46,940 --> 00:13:50,060 এবং এটি সহজলভ্য, না এবং চালানোর জন্য ব্যবহার করতে পারেন, 225 00:13:50,060 --> 00:13:53,660 কিন্তু আসলে পড়া এবং পরিবর্তন এবং আপনার নিজের কাজে সংহত. 226 00:13:53,660 --> 00:13:55,790 তাই কি আপনি ওপেন সোর্স সফটওয়ার ব্যবহার করছি,, 227 00:13:55,790 --> 00:13:58,030 যদিও খুব ছোট ফর্ম. 228 00:13:58,030 --> 00:14:01,860 যদি আমি মন্তব্য গত নিচে স্ক্রল যদিও,, আমরা আরো কিছু পরিচিত জিনিস দেখতে শুরু করব. 229 00:14:01,860 --> 00:14:08,090 এখানে শীর্ষে, তাই নোটিশ CS50.h ফাইলটি একটি হেডার ফাইল আভা রয়েছে. 230 00:14:08,090 --> 00:14:11,160 এখন, এই অধিকাংশ আমরা আগে, আছে দেখা যায় না কিন্তু এক হয় 231 00:14:11,160 --> 00:14:15,640 পরিচিত; এই যা আমরা আছে দেখা যায়, যদিও সংক্ষেপে, দূর পর্যন্ত? 232 00:14:15,640 --> 00:14:18,720 হাঁ, আদর্শ লাইব্রেরি. Stdlib.h malloc আছে, 233 00:14:18,720 --> 00:14:21,590 তাই একবার আমরা শুরু ডাইনামিক মেমরি বরাদ্দকরণের বিষয়ে কথা বলছি, 234 00:14:21,590 --> 00:14:24,960 যা আমরা পরের সপ্তাহে ফিরে আসবে হিসাবে পাবেন, আমরা যে ফাইল সহ শুরু. 235 00:14:24,960 --> 00:14:29,660 এটা পরিনত হয় যে আসলে bool এবং সত্য এবং মিথ্যা সি মধ্যে উপস্থিত না থাকার, সহজাতভাবে, 236 00:14:29,660 --> 00:14:32,460 যদি আপনি এই ফাইলটি এখানে অন্তর্ভুক্ত. 237 00:14:32,460 --> 00:14:35,770 সুতরাং আমরা সপ্তাহের জন্য,, হয়েছে প্রমিত bool.h সহ 238 00:14:35,770 --> 00:14:39,020 যাতে আপনি একটি bool, সত্য বা মিথ্যা. ধারণা ব্যবহার করতে পারেন 239 00:14:39,020 --> 00:14:41,830 এই ছাড়া, আপনি জাল তা বাছাই এবং কোন int ব্যবহার করতে হবে 240 00:14:41,830 --> 00:14:45,920 এবং ইচ্ছামত ঠিক অনুমান যে মিথ্যা 0 এবং 1 সত্য হয়. 241 00:14:45,920 --> 00:14:49,980 >> এখন, যদি আমরা নিচে স্ক্রল আরও এখানে, একটি স্ট্রিং আমাদের সংজ্ঞা. 242 00:14:49,980 --> 00:14:54,820 এটি সক্রিয় আউট, হিসাবে আমরা আগে বলেন করেছি, যে যেখানে এই * হয় ব্যাপার না. 243 00:14:54,820 --> 00:14:56,750 এমনকি আপনি স্থান সব থাকতেই পারে. 244 00:14:56,750 --> 00:15:01,550 আমরা, এই সেমিস্টারে, এই হিসাবে হয়েছে তা স্পষ্ট করতে যে * টাইপ করবেন প্রচার হয়েছে. 245 00:15:01,550 --> 00:15:05,370 কিন্তু আছে, বুঝতে পারছি, ঠিক যেমন সাধারণ, যদি সামান্য আরো একটি সাধারণ না, সেখানে এটি করা হয় 246 00:15:05,370 --> 00:15:07,480 কিন্তু বৈশিষ্ট্যগুলি এটা একই জিনিস. 247 00:15:07,480 --> 00:15:11,070 কিন্তু এখন, যদি আমরা আরও নিচে, আমি কি বলুন কটাক্ষপাত, GetInt নিতে, 248 00:15:11,070 --> 00:15:15,350 কারণ আমরা যে ব্যবহার, হয়ত অন্য কিছু এই সেমিস্টারে আগে,. 249 00:15:15,350 --> 00:15:19,620 এবং এখানে GetInt. এটা কি? 250 00:15:19,620 --> 00:15:24,650 এই প্রোটোটাইপ. তাই প্রায়ই, আমরা আমাদের সমাজের সারাংশ এগুলির নমুনা রাখেননি. গ ফাইল, 251 00:15:24,650 --> 00:15:28,190 কিন্তু আপনার হেডার ফাইল,. জ ফাইল এগুলির নমুনা লাগাতে পারেন, 252 00:15:28,190 --> 00:15:32,110 এই মত এখানে এক, যাতে যখন আপনি কিছু ফাংশন লিখুন 253 00:15:32,110 --> 00:15:36,790 যা আপনি অন্য ব্যক্তিদের ব্যবহার করতে সক্ষম হতে চান, যা ঠিক CS50 গ্রন্থাগারের সঙ্গে মামলা, 254 00:15:36,790 --> 00:15:40,900 আপনি না কেবল CS50.c মত আপনার ফাংশন বাস্তবায়ন, 255 00:15:40,900 --> 00:15:46,720 এছাড়াও আপনি যে ফাইলটি শীর্ষে এগুলির নমুনা করা, কিন্তু এ একটি হেডার ফাইলটি উপরে, 256 00:15:46,720 --> 00:15:50,810 তারপর যে হেডার ফাইলটি কি বন্ধু এবং সহকর্মীদের অন্তর্ভুক্ত, 257 00:15:50,810 --> 00:15:52,800 তাদের নিজস্ব কোড ধারালো সঙ্গে অন্তর্ভুক্ত. 258 00:15:52,800 --> 00:15:55,440 সব সময় এই তাহলে আপনি এগুলির নমুনা এই সব সহ করছি 259 00:15:55,440 --> 00:15:59,870 কার্যকরভাবে আপনার ফাইল উপরে, কিন্তু এই ধারালো পথে পদ্ধতিও অন্তর্ভুক্ত 260 00:15:59,870 --> 00:16:03,320 যে মূলত কপি এবং pastes আপনার নিজের মধ্যে এই ফাইল. 261 00:16:03,320 --> 00:16:06,400 এখন এখানে, কিছু মোটামুটি বিস্তারিত ডকুমেন্টেশন. 262 00:16:06,400 --> 00:16:08,880 >> আমরা প্রায় কাছাকাছি নিয়েছেন জন্য দেওয়া যে GetInt পায় কোন int, 263 00:16:08,880 --> 00:16:10,740 কিন্তু এটি সক্রিয় আউট কিছু কোণ ক্ষেত্রে অধিকার আছে,? 264 00:16:10,740 --> 00:16:14,320 একটি ব্যবহারকারীর সংখ্যা যে খুব বড় ধরনের উপায় কি যদি? 265 00:16:14,320 --> 00:16:17,350 একটি দশ লক্ষের পঞ্চঘাত, যে মাত্র একটি int-ভিতরে উপযুক্ত নয় পারেন? 266 00:16:17,350 --> 00:16:21,180 প্রত্যাশিত আচরণ কি? ভাল আদর্শভাবে,, এটা অনুমান করা যাবে. 267 00:16:21,180 --> 00:16:23,460 তাই এই ক্ষেত্রে, যদি আপনি এমন সূক্ষ্ম মুদ্রণ পড়া, 268 00:16:23,460 --> 00:16:27,850 আপনি যে যদি লাইন পড়া যাবে না, এই আয় INT_MAX দেখতে পাবেন. 269 00:16:27,850 --> 00:16:30,800 আমরা এই সম্পর্কে করেছি, কিন্তু কথা বলত না তার ছাঁদের উপর ভিত্তি করে, 270 00:16:30,800 --> 00:16:33,030 এটা কি হয় সম্ভবত,? 271 00:16:33,030 --> 00:16:36,610 এটি একটি ধ্রুবক, তাই কিছু বিশেষ ধ্রুবক যে সম্ভবত এর ঘোষণা 272 00:16:36,610 --> 00:16:39,460 যারা হেডার ফাইল যে ফাইলে উপর উচ্চতর এক, 273 00:16:39,460 --> 00:16:43,400 এবং INT_MAX সম্ভবত, মোটামুটিভাবে, ভালো 2 বিলিয়ন কিছু. 274 00:16:43,400 --> 00:16:48,160 ধারণা করা হচ্ছে যে, কারণ আমরা একরকম যে কিছু বোঝান প্রয়োজন ভুল হয়েছে, 275 00:16:48,160 --> 00:16:51,090 আমরা, হ্যাঁ, আমাদের নিষ্পত্তি 4 বিলিয়ন নম্বর আছে, 276 00:16:51,090 --> 00:16:53,980 নেতিবাচক আপ 2 বিলিয়ন বিলিয়ন 2, বা দিতে নিতে. 277 00:16:53,980 --> 00:16:58,030 ভাল, কি প্রোগ্রামিং সাধারণ হল আপনি চুরি করা মাত্র ঐ সংখ্যার এক. 278 00:16:58,030 --> 00:17:02,250 হয়তো 0 হয়তো, 2 বিলিয়ন, হয়তো নেতিবাচক 2 বিলিয়ন. 279 00:17:02,250 --> 00:17:06,720 সুতরাং আপনি আপনার সম্ভাব্য মান ব্যয় যাতে আপনি বিশ্বের কমিট করতে পারেন 280 00:17:06,720 --> 00:17:10,089 যে যদি কিছু গোলমাল হয়, আমি এই মহা বড় মান প্রত্যাবর্তন করা. 281 00:17:10,089 --> 00:17:13,329 কিন্তু আপনি ব্যবহারকারী কিছু ভালো রহস্যপূর্ণ টাইপ "2, 3, 4 ..." করতে না চান 282 00:17:13,329 --> 00:17:17,079 এর বড় সংখ্যা, যেখানে আপনি একটি ধ্রুবক হিসাবে পরিবর্তে সাধারণের বোধগম্য. 283 00:17:17,079 --> 00:17:19,380 সত্যিই তাই, যদি আপনি মলদ্বারে হচ্ছে গত কয়েক সপ্তাহ ছিল, 284 00:17:19,380 --> 00:17:23,800 যে কোনো সময় আপনি GetInt কল, যদি আপনি একটি শর্ত হয়েছে উচিত চেক. 285 00:17:23,800 --> 00:17:27,109 INT_MAX ব্যবহারকারী টাইপ করেন, বা আরো নির্দিষ্টভাবে, 286 00:17:27,109 --> 00:17:29,900 কি GetInt রিটার্ন INT_MAX? কারণ যদি তা, 287 00:17:29,900 --> 00:17:35,140 আসলে মানে হল তারা এটা টাইপ না; এই ক্ষেত্রে কিছু ভুল হয়েছে. 288 00:17:35,140 --> 00:17:38,970 তাই এটি কি একটি "প্রহরী" মান, যা শুধু অর্থ বিশেষ হিসাবে সাধারণত এর পরিচিত. 289 00:17:38,970 --> 00:17:41,020 >> ওয়েল, আমি কি এখন যাও. গ ফাইল চালু. 290 00:17:41,020 --> 00:17:44,500 সি ফাইল প্রয়োগ কিছু সময় অস্তিত্ত্বকে করেনি, 291 00:17:44,500 --> 00:17:47,540 আসলে,, যন্ত্র আছে এটা আপনার জন্য precompiled 292 00:17:47,540 --> 00:17:49,720 আমরা যে জিনিসের মধ্যে একে বলা হয় "অবজেক্ট কোড," 293 00:17:49,720 --> 00:17:52,940 কিন্তু এটা আপনি যেখানে তার কারণ হল, সিস্টেমের ব্যাপার জানেন না, 294 00:17:52,940 --> 00:17:54,780 এই ক্ষেত্রে, যেখানে এটা যন্ত্র. 295 00:17:54,780 --> 00:18:00,620 কিন্তু এখন এর স্ক্রল করে নিচে GetInt যাক, এবং কিভাবে GetInt হয়েছে সব সময় এই কাজ দেখতে. 296 00:18:00,620 --> 00:18:02,380 তাই আমরা এখানে আগে থেকে অনুরূপ মন্তব্য আছে. 297 00:18:02,380 --> 00:18:04,930 সম্পর্কে কেবল কোড অংশের মধ্যে জুম করা যাক, 298 00:18:04,930 --> 00:18:07,410 এবং কি আমরা GetInt জন্য নিম্নলিখিত আছে. 299 00:18:07,410 --> 00:18:12,770 এটি কোনো ইনপুট নেয় এবং এটি কোন int ফেরৎ, যখন (সত্য), তাই আমরা একটি ইচ্ছাকৃত অসীম লুপ আছে 300 00:18:12,770 --> 00:18:16,560 কিন্তু সম্ভবতঃ,, আমরা এই বিরতি আউট একরকম, করব বা মধ্যে এই থেকে ফিরে. 301 00:18:16,560 --> 00:18:19,890 সুতরাং আসুন কিভাবে এই কাজ করে দেখুন. ভাল, আমরা মনে GetString ব্যবহার করা হবে 302 00:18:19,890 --> 00:18:22,550 এই লুপ, 166 ভিতর প্রথম লাইন. 303 00:18:22,550 --> 00:18:25,320 এটি এখন ভাল অভ্যাস কারণ কি অবস্থার অধীন 304 00:18:25,320 --> 00:18:30,820 এই বিশেষ অভিব্যক্তি, শূন্য GetString ফিরে আসতে পারে? 305 00:18:30,820 --> 00:18:38,460 যদি কিছু গোলমাল হয়. যখন আপনি GetString মত কল কি ভুল হয়ে যেতে পারে? 306 00:18:38,460 --> 00:18:42,550 হাঁ? [ছাত্র উত্তর, অপাচ্য] >> হ্যাঁ. তাই হয়তো malloc ব্যর্থ. 307 00:18:42,550 --> 00:18:45,310 কোথাও নীচে ফণা GetString malloc আহ্বান করা হয়, 308 00:18:45,310 --> 00:18:48,210 যা মেমরি বরাদ্দ করা, যা কম্পিউটার দোকান দেয় 309 00:18:48,210 --> 00:18:50,950 অক্ষর যে সকল ব্যবহারকারী কীবোর্ড মধ্যে ধরনের. 310 00:18:50,950 --> 00:18:53,270 অনুমান এবং ব্যবহারকারী একটি বিনামূল্যে সময় পুরো অনেক ছিল 311 00:18:53,270 --> 00:18:56,470 এবং টাইপ 2 বিলিয়ন অক্ষরের বেশী, উদাহরণস্বরূপ,. 312 00:18:56,470 --> 00:18:59,600 কম্পিউটার বেশী অক্ষর এমনকি RAM উপস্থিত রয়েছে. 313 00:18:59,600 --> 00:19:02,350 ওয়েল, GetString যাও যাও যাও আপনি যে বোঝান সক্ষম হতে হয়েছে, 314 00:19:02,350 --> 00:19:05,650 এমনকি যদি এই একটি সুপার, সুপার অসাধারণ কোণার কেস. 315 00:19:05,650 --> 00:19:08,490 এটা একরকম এই হ্যান্ডেল করতে পারবে আছে, এবং তাই GetString, 316 00:19:08,490 --> 00:19:11,850 যদি আমরা ফিরে যান এবং তার ডকুমেন্টেশন পড়ুন, আসলে,, কিন্তু NULL ফেরত. 317 00:19:11,850 --> 00:19:16,150 এখন যদি GetString NULL ফেরত দ্বারা করা সম্ভব না হলে, GetInt বিফল হবে 318 00:19:16,150 --> 00:19:19,370 ফিরে দ্বারা শুধুমাত্র একটি প্রহরী হিসাবে INT_MAX,. 319 00:19:19,370 --> 00:19:22,650 এগুলি হল শুধু মানুষের নিয়মাবলী. একমাত্র উপায় জানতে চান আপনি এই ক্ষেত্রে 320 00:19:22,650 --> 00:19:24,840 ডকুমেন্টেশন পড়া হয়. 321 00:19:24,840 --> 00:19:28,200 সুতরাং আসুন যেখানে int-আসলে GotInt যাও নিচে স্ক্রোল করুন. 322 00:19:28,200 --> 00:19:34,220 >> তাই লাইন 170 সালে যদি আমি স্ক্রল ডাউন একটি অতিরিক্ত বিট, আমরা এই লাইন উপরে একটি মন্তব্য আছে. 323 00:19:34,220 --> 00:19:38,470 সুতরাং আমরা 172 সালে, ডিক্লেয়ার করার কোন int n এবং একটি গৃহস্থালি গ, এবং তারপর এই নতুন ফাংশন, 324 00:19:38,470 --> 00:19:41,870 আপনি যা কিছু আগে জুড়ে, স্খলিতচরণ কিন্তু sscanf আছে. 325 00:19:41,870 --> 00:19:44,190 উল্লিখিত পংক্তি অনুযায়ী স্ক্যান চ ঘোরা. 326 00:19:44,190 --> 00:19:48,580 অন্য কথায়, সম্পর্কে একটি স্ট্রিং দিন এবং আমি আগ্রহের তথ্য টুকরোগুলি জন্য এটি স্ক্যান করবে. 327 00:19:48,580 --> 00:19:53,820 সুতরাং যে কি মানে? ওয়েল, অনুমান যে, আক্ষরিক অর্থ, 1 2 3 আমি কীবোর্ড এ টাইপ করুন, 328 00:19:53,820 --> 00:19:59,730 এবং তারপর আঘাত লিখুন. 1 2 3 তথ্য টাইপ GetString দ্বারা যখন ফিরে কি? 329 00:19:59,730 --> 00:20:05,010 এটা সম্ভবত এর একটি স্ট্রিং, ডান? আমি একটি স্ট্রিং আছে, তাই 1 2 3 সত্যিই "1 2 3" 330 00:20:05,010 --> 00:20:07,260 সঙ্গে এটি শেষে \ 0. যে কোন int হয় না. 331 00:20:07,260 --> 00:20:10,420 যে একটি সংখ্যা না. এটি একটি নম্বর মনে হচ্ছে কিন্তু এটি আসলে না. 332 00:20:10,420 --> 00:20:14,680 তাই GetInt কি আছে? এটা যে পংক্তি বাম থেকে স্ক্যান করা হয়েছে, 333 00:20:14,680 --> 00:20:19,010 1 2 3 \ 0, এবং প্রকৃত একরকম একটি পূর্ণসংখ্যা যাও তা রূপান্তর করুন. 334 00:20:19,010 --> 00:20:21,010 এখন, আপনি কিভাবে এই জিনিসটা করতে পারে. 335 00:20:21,010 --> 00:20:24,240 আপনি যদি pset 2 ফিরে মনে করেন, সম্ভবতঃ আপনি না একটু আরামদায়ক 336 00:20:24,240 --> 00:20:26,810 সিজার বা vigenere যাতে আপনি একটি স্ট্রিং উপর পুনরুক্তি করতে পারেন, 337 00:20:26,810 --> 00:20:29,800 আপনি অক্ষর পছন্দ সঙ্গে ints রূপান্তর করতে পারেন. এটা একটি কাজ সমগ্র অনেক. 338 00:20:29,800 --> 00:20:32,800 কেন sscanf মত একটি ফাংশন যা আপনাকে যে জন্য ফোন আছে না? 339 00:20:32,800 --> 00:20:37,520 সুতরাং sscanf প্রত্যাবর্তনের এই ক্ষেত্রে বলা লাইন, যা একটি স্ট্রিং একটি যুক্তি,. 340 00:20:37,520 --> 00:20:41,310 তারপর আপনি কোট মধ্যে, নির্দিষ্ট, printf অনুরূপ, 341 00:20:41,310 --> 00:20:44,960 না কি আপনি এই স্ট্রিং দেখতে আশা? 342 00:20:44,960 --> 00:20:52,980 আমি কি এখানে বলছে না হয়, আমি একটা দশমিক সংখ্যা হতে পারে এবং একটি অক্ষর দেখতে আশা. 343 00:20:52,980 --> 00:20:54,990 এবং আমরা এটি কেন শুধু একটা মুহূর্ত ক্ষেত্রে দেখতে পাবেন. 344 00:20:54,990 --> 00:20:58,440 এটা পরিনত হয় যে এই স্বরলিপি এখন তরিতরকারি স্মরণকারী 345 00:20:58,440 --> 00:21:00,840 আমরা শুরু মাত্র এক সপ্তাহ আগে যে বিষয়ে কথা বলছি. 346 00:21:00,840 --> 00:21:05,430 >> আমাদের জন্য কি & এবং এন সি এখানে কি করছে? [ছাত্র উত্তর, অপাচ্য] 347 00:21:05,430 --> 00:21:07,610 >> হ্যাঁ. এটা আমার গ n ঠিকানা এবং ঠিকানা প্রদান করে. 348 00:21:07,610 --> 00:21:10,440 এখন, কেন যে গুরুত্বপূর্ণ? আচ্ছা, আপনি কি জানেন যে সঙ্গে সি ইন ফাংশান উপস্থিত করা 349 00:21:10,440 --> 00:21:13,440 আপনি সবসময় সব মান বা না মান প্রত্যাবর্তন করা যাবে. 350 00:21:13,440 --> 00:21:16,630 আপনি কোন int, একটি পংক্তি, একটি float, একটি গৃহস্থালি, যাই হোক না কেন ফিরে যেতে পারেন. 351 00:21:16,630 --> 00:21:21,150 অথবা আপনি অকার্যকর ফিরে, কিন্তু আপনি শুধুমাত্র 1 টি জিনিস সর্বাধিক প্রত্যাবর্তন করতে পারেন. 352 00:21:21,150 --> 00:21:26,100 কিন্তু এখানে আমরা sscanf সম্পর্কে হয়তো ফিরে কোন int, একটি দশমিক সংখ্যা চান, 353 00:21:26,100 --> 00:21:29,240 এবং আরও একটি গৃহস্থালির কাজ, এবং আমি একটি মুহূর্ত কেন গৃহস্থালি ব্যাখ্যা করব. 354 00:21:29,240 --> 00:21:34,250 সুতরাং আপনি কার্যকরভাবে চ 2 জিনিষ ফেরত দিতে চান; যে ঠিক করা সম্ভব সি না 355 00:21:34,250 --> 00:21:38,460 সুতরাং আপনি 2 ঠিকানাগুলোতেই পাশ দিয়ে কাজ করতে পারেন চারপাশে যে, 356 00:21:38,460 --> 00:21:43,710 কারণ যত তাড়াতাড়ি আপনি 2 ঠিকানাগুলি হাতে একটি ফাংশান কি, যে ফাংশন তাদের সাথে কি করতে পারি? 357 00:21:43,710 --> 00:21:49,880 ঐ ঠিকানায় চিঠি লিখতে পারেন. আপনি * অপারেশন ব্যবহার এবং যারা ঠিকানাগুলির প্রত্যেকটিতে "সেখানে যাওয়ার জন্য" করতে পারেন. 358 00:21:49,880 --> 00:21:54,320 এটা এই খিড়কি প্রক্রিয়া সাজানোর, কিন্তু ভেরিয়েবলের মান পরিবর্তন করার জন্য খুব সাধারণ 359 00:21:54,320 --> 00:21:58,020 ঠিক এই ক্ষেত্রে 1 2 মধ্যে জায়গা, বেশী. 360 00:21:58,020 --> 00:22:04,590 এখন, আমি == to1 জন্য, চেক এবং তারপর n ফিরে যদি যে সত্য, না সত্য পরীক্ষা করছি বিজ্ঞপ্তি. 361 00:22:04,590 --> 00:22:09,340 কি করছেন? ভাল টেকনিক্যালি,, সব আমরা সত্যিই GetInt মধ্যে ঘটতে করতে চান এই. 362 00:22:09,340 --> 00:22:12,340 আমরা, পার্স তাই কথা বলতে চাই; আমরা স্ট্রিং পড়তে চাই 363 00:22:12,340 --> 00:22:16,210 "1 2 3" এবং যদি এটা মনে আছে একটি নম্বর আছে, 364 00:22:16,210 --> 00:22:21,360 আমরা কি sscanf করছি না এই সম্পর্কে বলার জন্য পরিবর্তনশীল হবে যে নম্বর, 1 2 3, করা হয়. 365 00:22:21,360 --> 00:22:26,060 তারপর কেন,, আমি কি এই হিসাবে আছে ভাল? 366 00:22:26,060 --> 00:22:33,750 এছাড়াও বলছে, sscanf, তবে আপনাকে একটি অক্ষর এখানে পেতে পারে ভূমিকা কি. 367 00:22:33,750 --> 00:22:36,890 [ছাত্র ভাষাভাষী, অপাচ্য] >> নেই - একটি দশমিক বিন্দু কাজ করতে পারেন. 368 00:22:36,890 --> 00:22:40,650 এর রাখা যাক একটি মুহূর্তে যে চিন্তা. আর কী? 369 00:22:40,650 --> 00:22:42,570 [ছাত্র, অপাচ্য] >> সুতরাং, ভালো চিন্তা, এটি শূন্য অক্ষর হতে পারে. 370 00:22:42,570 --> 00:22:44,970 এটা আসলে এর, এই ক্ষেত্রে না. হাঁ? [ছাত্র, অপাচ্য] 371 00:22:44,970 --> 00:22:47,100 >> >> ASCII. অথবা, আমাকে এমনকি আরও সাধারণের বোধগম্য. 372 00:22:47,100 --> 00:22:49,670 % গ সেখানে মাত্র ত্রুটি পরীক্ষা করা হয়. 373 00:22:49,670 --> 00:22:52,510 আমরা সেখানে না নম্বর পরে অক্ষর হতে না চান, 374 00:22:52,510 --> 00:22:54,980 কিন্তু এই সম্পর্কে কি কি করতে পারবেন করা হল: 375 00:22:54,980 --> 00:23:01,270 এটি সক্রিয় যে sscanf, সংরক্ষণ ছাড়াও এখানে এই উদাহরণে হবে এবং গ মান,, 376 00:23:01,270 --> 00:23:08,170 এটি কি তা ভেরিয়েবল সংখ্যা উৎপন্ন হয় না এটা ইন মান করা 377 00:23:08,170 --> 00:23:13,330 সুতরাং আপনি যদি শুধুমাত্র 1 2 3, তারপর টাইপ করুন% d তে মেলে যাচ্ছে 378 00:23:13,330 --> 00:23:18,830 এবং শুধুমাত্র এন 1 2 3 ভালো একটি মান সংরক্ষিত হয় এবং গ কিছুই করা পরার পরার; 379 00:23:18,830 --> 00:23:20,870 গ অবশেষ একটি গার্বেজ মান, তাই কথা বলতে. 380 00:23:20,870 --> 00:23:23,550 জঞ্জাল কারণ এটি কিছু মান হিসাবে সক্রিয়া করা হয়েছে না. 381 00:23:23,550 --> 00:23:29,390 সুতরাং যে ক্ষেত্রে, sscanf প্রত্যাবর্তন 1, কারণ আমি সেই পয়েন্টার এক নারী, 382 00:23:29,390 --> 00:23:33,650 যে ক্ষেত্রে, মহান. আমি কোন int আছে, তাই আমি মেমরি মুক্ত লাইন মুক্ত 383 00:23:33,650 --> 00:23:37,150 যে GetString আসলে বরাদ্দ করা, এবং তারপর আমি ফিরে আসতে হবে. 384 00:23:37,150 --> 00:23:42,210 অন্যথায়, যদি কখনও কোন বিস্ময়ের উদ্রেক যেখানে যে বিবৃতি থেকে পুনরায় চেষ্টা করুন ঠিক এই স্থান থেকে আসে, আসে. 385 00:23:42,210 --> 00:23:45,770 বৈসাদৃশ্য দ্বারা যদি,, আমি 1 2 3 foo বিন্যাস টাইপ, 386 00:23:45,770 --> 00:23:48,640 কিছু কিছু লেখার র্যান্ডম ক্রম, sscanf দেখতে হবে, 387 00:23:48,640 --> 00:23:51,500 নম্বর উত্তেজনা,, নম্বর উত্তেজনা, উত্তেজনা, সংখ্যা, উত্তেজনা - চ. 388 00:23:51,500 --> 00:23:54,190 এবং তা হবে 1 2 3 করা যাচ্ছে. 389 00:23:54,190 --> 00:23:59,970 এটা গ চ মধ্যে রাখুন, এবং তারপর 2 ফিরে যাচ্ছে. 390 00:23:59,970 --> 00:24:02,980 সুতরাং আমরা আছে, ঠিক scanf এর ব্যবহার মৌলিক সংজ্ঞা ব্যবহার করে, 391 00:24:02,980 --> 00:24:06,170 একটি অত্যন্ত সহজ উপায় - ভাল, প্রথম নজরে জটিল, কিন্তু এ দিনের শেষে, 392 00:24:06,170 --> 00:24:11,460 বলছে মোটামুটি সহজ প্রক্রিয়া, নেই কোন int, এবং যদি তাই হয় যে, শুধুমাত্র যে কাজটা আমি খুঁজে পাওয়া যায়নি? 393 00:24:11,460 --> 00:24:14,950 এবং সাদা এখানে স্থান ইচ্ছাকৃত. আপনি যদি sscanf জন্য ডকুমেন্টেশন পড়ুন, 394 00:24:14,950 --> 00:24:18,690 এটি যে আপনি যদি সাদা স্থান একটি শুরুতে বা শেষে টুকরা অন্তর্ভুক্ত, আপনি বলে 395 00:24:18,690 --> 00:24:24,990 sscanf খুব কারনের জন্য ব্যবহারকারীকে অনুমতি দেয়,, যাও spacebar 1 2 3 আঘাত করা, এবং যে বৈধ হতে হবে. 396 00:24:24,990 --> 00:24:28,310 এটি ব্যবহারকারী এ চিত্কার হবে না কারণ তারা শুরুতে বা শেষে spacebar আঘাত, 397 00:24:28,310 --> 00:24:32,160 যা অল্পমাত্র আরো ব্যবহারকারী বান্ধব. 398 00:24:32,160 --> 00:24:34,160 >> কোন প্রশ্ন থাকে, তাহলে, উপর GetInts? হাঁ? 399 00:24:34,160 --> 00:24:36,820 [ছাত্র প্রশ্ন, অপাচ্য] 400 00:24:36,820 --> 00:24:40,740 >> গুড প্রশ্ন. চ কি, এবং হিট মত যদি আপনি শুধু একটি গৃহস্থালির কাজ টাইপ করা, লিখুন 401 00:24:40,740 --> 00:24:47,830 কখনও 1 2 3 টাইপ ছাড়া; কি আপনি কোড এই লাইনের পরে ব্যবহার করা হবে বলে তুমি মনে কর? 402 00:24:47,830 --> 00:24:50,500 সুতরাং sscanf খুব যে আবরণ, করতে পারেন না কারণ সেক্ষেত্রে, 403 00:24:50,500 --> 00:24:56,280 তা n বা গ পূরণ হতেই থাকবে না; এটি পরিবর্তে 0 ফিরে যাচ্ছে. 404 00:24:56,280 --> 00:25:01,540 যে ক্ষেত্রে, এই আমি যে দৃশ্যকল্প করছি সংক্রামক, কারণ আমি চাই প্রত্যাশিত মান হল 1. 405 00:25:01,540 --> 00:25:07,310 আমি কেবল 1 চান, এবং শুধুমাত্র 1 টি জিনিস বুজা যাও. ভাল প্রশ্ন. অন্যদের? 406 00:25:07,310 --> 00:25:09,610 >> ঠিক আছে, তাই এখানে কাজ করে সব দিয়ে যেতে না দেওয়া, 407 00:25:09,610 --> 00:25:11,820 কিন্তু এক যে হতে পারে, সম্ভবত অবশিষ্ট সুদ, মনে হচ্ছে 408 00:25:11,820 --> 00:25:14,530 কারণ এটি সক্রিয় আউট GetString হয় যে GetFloat, GetInt, 409 00:25:14,530 --> 00:25:19,490 , GetDouble GetLongLong GetString তাদের কার্যকারিতা অনেক সমস্ত পান্ট. 410 00:25:19,490 --> 00:25:22,860 সুতরাং আসুন এখানে তিনি কিভাবে বাস্তবায়িত হয় কটাক্ষপাত করা. 411 00:25:22,860 --> 00:25:27,040 এই এক সামান্য জটিল দেখায় কিন্তু এটি একই মৌলিক ব্যবহার 412 00:25:27,040 --> 00:25:29,680 যে আমরা শুরু করতে গত সপ্তাহে বিষয়ে কথা বলছি. তাই GetString, 413 00:25:29,680 --> 00:25:32,670 যা প্রতি অকার্যকর হিসাবে কোন যুক্তি লাগে এখানে, 414 00:25:32,670 --> 00:25:37,110 এবং এটি একটি স্ট্রিং প্রত্যাবর্তন; তাই আমি একটি স্ট্রিং নামক বাফার ঘোষণা করছি. 415 00:25:37,110 --> 00:25:39,670 আমি কি যে এখনও জন্য ব্যবহার করা যাচ্ছে না সত্যিই জানি না, কিন্তু আমরা দেখতে পাবেন. 416 00:25:39,670 --> 00:25:42,950 ক্ষমতা ভালো সৌন্দর্য ডিফল্ট, 0 দ্বারা করা হয়,; পুরোপুরি নিশ্চিত যেখানে এই যাচ্ছে না. 417 00:25:42,950 --> 00:25:44,920 . কি হবে এখনও জন্য ব্যবহার করা যাচ্ছে না 418 00:25:44,920 --> 00:25:47,860 কিন্তু এখন তাই লাইন 243 সালে পেয়ে একটু আরো আকর্ষণীয়, এর, 419 00:25:47,860 --> 00:25:51,760 আমরা কোন int গ, এই একটি মূঢ় বিবরণের সাজানোর ঘোষণা. 420 00:25:51,760 --> 00:25:58,080 একটি গৃহস্থালি হয় 8 বিট, এবং 8 বিট কত বিভিন্ন মান সংরক্ষণ করতে পারেন? 421 00:25:58,080 --> 00:26:03,310 256. সমস্যা হল, যদি আপনি বিভিন্ন 256 ASCII অক্ষর করাতে চাই, 422 00:26:03,310 --> 00:26:06,210 যা আছে, যদি আপনি ফিরে মনে করি, এবং এই কিছু মুখস্থ করা নয়. 423 00:26:06,210 --> 00:26:09,100 কিন্তু আপনি যদি যে বড় হওয়া ASCII চার্ট ফিরে মনে করি আমরা ছিল সপ্তাহ আগে, 424 00:26:09,100 --> 00:26:13,780 ছিল যে ক্ষেত্রে, 128 বা 256 ASCII অক্ষর আছে,. 425 00:26:13,780 --> 00:26:16,220 আমরা সব 0 এর ধরনে এবং 1 পর্যন্ত ব্যবহৃত. 426 00:26:16,220 --> 00:26:19,410 এটা একটা সমস্যা যদি আপনি কোনো ত্রুটি সনাক্ত সক্ষম হতে চান. 427 00:26:19,410 --> 00:26:23,290 কারণ যদি আপনি ইতিমধ্যেই আপনার অক্ষরের জন্য করছি 256 মান ব্যবহার করে, 428 00:26:23,290 --> 00:26:26,390 আপনি কি সত্যিই এগিয়ে পরিকল্পনা করছি না, কারণ এখন বলছে আপনি কি কোন উপায় আছে, 429 00:26:26,390 --> 00:26:29,750 "এটি একটি legit অক্ষর না; এটি কিছু ভ্রান্ত বার্তা." 430 00:26:29,750 --> 00:26:32,430 তাই দুনিয়া আছে, তারা পরবর্তী বৃহত্তম মান ব্যবহার করতে হবে, 431 00:26:32,430 --> 00:26:35,790 কোন int ভালো কিছু যাতে আপনি একটি বিটের ছবি নম্বর আছে, 432 00:26:35,790 --> 00:26:39,610 যাতে 4 বিলিয়ন সম্ভাব্য মান জন্য 32, কেবল আপনি শেষ পর্যন্ত ব্যবহার করতে পারেন, 433 00:26:39,610 --> 00:26:44,800 মূলত, তাদের 257, 1 যা কিছু ত্রুটি হিসাবে একটি বিশেষ অর্থ আছে. 434 00:26:44,800 --> 00:26:49,190 >> সুতরাং আসুন কিভাবে এই কাজ করে দেখুন. লাইন 246 সালে, আমি যখন বড় এই লুপ আছে 435 00:26:49,190 --> 00:26:54,530 যে fgetc হয় কলিং; চ অর্থ ফাইল, getc, এবং তারপর stdin. 436 00:26:54,530 --> 00:26:59,030 দেখা যাচ্ছে এটা বলছে আরও সুনির্দিষ্ট উপায় "ইনপুট কীবোর্ড থেকে পড়া." 437 00:26:59,030 --> 00:27:02,730 স্ট্যান্ডার্ড ইনপুট মানে কীবোর্ড, স্ট্যান্ডার্ড আউপুট পর্দা মানে, 438 00:27:02,730 --> 00:27:06,920 এবং মান ত্রুটি, যা আমরা pset 4 এ দেখতে পাবেন, পর্দা মানে, 439 00:27:06,920 --> 00:27:09,670 একটি পর্দার বিশেষ অংশ কিন্তু যাতে তা মিশিয়ে ফেলেছিলেন না 440 00:27:09,670 --> 00:27:13,760 সঙ্গে প্রকৃত আউটপুট যে আপনি মুদ্রণ উদ্দেশ্যে; কিন্তু যা ভবিষ্যতে আরও. 441 00:27:13,760 --> 00:27:19,430 তাই ঠিক fgetc মানে কীবোর্ড থেকে একটি অক্ষর, এবং এটি পড়া যেখানে সঞ্চয়? 442 00:27:19,430 --> 00:27:24,000 গ তা, সঞ্চয় এবং তারপর চেক, তাই আমি শুধু কিছু বুলিয়ান conjunctions এখানে ব্যবহার করে, 443 00:27:24,000 --> 00:27:28,430 চেক যে এটা আছে, তাই হবে, ব্যবহারকারী এন্টার করেনি সমান \ হইনি. 444 00:27:28,430 --> 00:27:31,510 আমরা যে বিন্দু, লুপ শেষে থামাতে চাই, এবং আমরা যাচাই করতে চান 445 00:27:31,510 --> 00:27:36,170 জন্য বিশেষ ধ্রুবক, ফাইলের শেষে, যা আপনি যদি জানেন বা অনুমান - এটি কী জন্য দাঁড়াবেন? 446 00:27:36,170 --> 00:27:39,860 ফাইলের শেষে. সুতরাং এই ধরনের অর্থহীন, কারণ আমি যদি কীবোর্ড এ টাইপ করছি, 447 00:27:39,860 --> 00:27:41,900 আসলে কোন ফাইল এই কাজে জড়িত, 448 00:27:41,900 --> 00:27:44,330 কিন্তু এই মাত্র জেনেরিক শব্দটি বোঝাতে ব্যবহার করা হয় বাছাই 449 00:27:44,330 --> 00:27:50,320 যে অন্য কিছুই মানুষের আঙ্গুলের এর থেকে আসছে. ফাইলের শেষে. ফাইলের শেষে. 450 00:27:50,320 --> 00:27:52,600 হিসাবে একটি সরাইয়া, যদি কখনও আপনার কীবোর্ড এ করেছি নিয়ন্ত্রণ ঘ আঘাত, 451 00:27:52,600 --> 00:27:54,680 আপনি এখনো যে করা সম্ভব নয়; আপনি নিয়ন্ত্রণ গ আঘাত করেছেন. 452 00:27:54,680 --> 00:27:57,920 কিন্তু নিয়ন্ত্রণ ঘ এই বিশেষ ধ্রুবক বলা ফাইলের শেষে পাঠায়. 453 00:27:57,920 --> 00:28:03,100 >> তাই এখন আমরা কিছু ডাইনামিক মেমরি বরাদ্দকরণের আছে. 454 00:28:03,100 --> 00:28:06,460 তাই আপনি যদি n + 1> ক্ষমতা এখন, আমি এন ব্যাখ্যা করব. 455 00:28:06,460 --> 00:28:09,380 n ঠিক কত বাইট হয় বাফারে বর্তমানে, 456 00:28:09,380 --> 00:28:11,970 স্ট্রিং যে বর্তমানে আপনার ব্যবহারকারী থেকে নির্মাণ করছেন আপ. 457 00:28:11,970 --> 00:28:16,240 আপনি যদি আপনার বাফারে আরো অক্ষর তুলনায় আপনি বাফারে ক্ষমতা আছে, 458 00:28:16,240 --> 00:28:20,760 intuitively, আমরা কি তাহলে যা করতে হবে আরো ক্ষমতা বরাদ্দ করা হয়. 459 00:28:20,760 --> 00:28:24,490 আমি গাণিতিক কিছু সর পড়া এখানে উপর চলেছি 460 00:28:24,490 --> 00:28:26,900 শুধুমাত্র এই ফাংশন এখানে এবং ফোকাস. 461 00:28:26,900 --> 00:28:29,170 আপনি কি জানেন যে malloc হয়, অথবা অন্তত সাধারণভাবে পরিচিত. 462 00:28:29,170 --> 00:28:32,380 একটি অনুমান কি realloc আছে নিন. [ছাত্র উত্তর, অপাচ্য] 463 00:28:32,380 --> 00:28:35,690 >> হ্যাঁ. এবং এটি মেমরি যোগ বেশ এর না; এটি অনুসরণ হিসাবে মেমরি reallocates: 464 00:28:35,690 --> 00:28:40,530 আপনি যদি এখনও সেখানে পংক্তির শেষে ঘরে আপনি যে মেমরি আরো দেত্তয়া 465 00:28:40,530 --> 00:28:43,370 তুলনায় এটি মূলত আপনাকে দেয়, তাহলে আপনি যে অতিরিক্ত মেমরি পাবেন. 466 00:28:43,370 --> 00:28:46,640 সুতরাং আপনি শুধুমাত্র স্ট্রিং অক্ষর ফিরে যাও যাও যাও ব্যাক ব্যাক ব্যাক স্থাপন করতে পারেন. 467 00:28:46,640 --> 00:28:49,290 কিন্তু যদি এই ক্ষেত্রে না, কারণ আপনি ঢুকে অতি দীর্ঘ 468 00:28:49,290 --> 00:28:51,700 এবং কিছু র্যান্ডম না plopped মেমরির মধ্যে আছে, কিন্তু অতিরিক্ত আছে 469 00:28:51,700 --> 00:28:56,480 এখানে নিচে মেমরি, যে ঠিক. Realloc আপনার জন্য সব ভারী উত্তোলন করতে হবে, 470 00:28:56,480 --> 00:28:58,810 পংক্তি আপনি এইভাবে এখান থেকে দূরে সরানো পড়েছি, 471 00:28:58,810 --> 00:29:02,550 ডাউন করা আছে, এবং তারপর আপনি যে সময়ে আরো কিছু রানওয়ে দিতে. 472 00:29:02,550 --> 00:29:05,610 তাই হাতের একটি তরঙ্গ সাথে, আমাকে বলে কি GetString করছে 473 00:29:05,610 --> 00:29:09,540 এটি একটি ছোট বাফার, হয়তো 1 একক অক্ষর দিয়ে শুরু এর, 474 00:29:09,540 --> 00:29:12,300 এবং ব্যবহারকারী 2 অক্ষর ধরনের যদি, GetString সমাপ্ত 475 00:29:12,300 --> 00:29:15,210 realloc আহ্বান জানান এবং বলেন, 'বিস্ময়, 1 টি অক্ষর যথেষ্ট ছিল না. 476 00:29:15,210 --> 00:29:18,480 সম্পর্কে 2 অক্ষর দিন. ' তারপর যদি আপনি লুপের পক্ষে যুক্তি দিয়ে পড়া, 477 00:29:18,480 --> 00:29:21,070 এটা বলে, 'বিস্ময় ব্যবহারকারী 3 টি অক্ষর টাইপ করা, যাচ্ছে. 478 00:29:21,070 --> 00:29:25,690 সম্পর্কে এখন না কিন্তু 2 4 অক্ষর দিন, তারপরে সম্পর্কে 8 দিন, তারপর সম্পর্কে 16 এবং 32 দিন. ' 479 00:29:25,690 --> 00:29:28,180 যে আমি প্রতিটি সময় দ্বিত্ব ক্ষমতা করছি 480 00:29:28,180 --> 00:29:30,320 এর মানে হল যে বাফার যাও ধীরে ধীরে হত্তয়া যাচ্ছে না. 481 00:29:30,320 --> 00:29:35,870 এটি সুপার ফাস্ট হত্তয়া যাচ্ছে, এবং এর যে কি সুবিধা হতে পারে? 482 00:29:35,870 --> 00:29:38,540 আমি এটা কেন বাফারের মাপ দ্বিত্ব, যদিও ব্যবহারকারী 483 00:29:38,540 --> 00:29:41,450 1 কীবোর্ড থেকে অতিরিক্ত অক্ষর শুধু প্রয়োজন হতে পারে? 484 00:29:41,450 --> 00:29:44,830 [ছাত্র উত্তর, অপাচ্য]. >> কি যে? 485 00:29:44,830 --> 00:29:46,750 ঠিক. আপনি এটি হিসাবে প্রায়ই হত্তয়া না. 486 00:29:46,750 --> 00:29:48,870 এবং এই একটি মাত্র ধরনের - you're আপনার কয়টা বেট এখানে hedging. 487 00:29:48,870 --> 00:29:54,150 ধারণা করা হচ্ছে যে আপনি অনেক realloc কল করতে না চান, কারণ এটা ধীর হতে থাকে. 488 00:29:54,150 --> 00:29:56,840 কোন সময় মেমরির জন্য অপারেটিং সিস্টেম জিজ্ঞাসা, যত তাড়াতাড়ি আপনি দেখতে পাবেন 489 00:29:56,840 --> 00:30:00,620 ভবিষ্যতে সমস্যা সেটে, এটা কিছু সময় লাগতে থাকে. 490 00:30:00,620 --> 00:30:04,980 সময় যে পরিমাণ হ্রাস, এমনকি আপনি যদি কিছু জায়গা নষ্ট করছি, তাই একটি ভাল জিনিস হতে থাকে. 491 00:30:04,980 --> 00:30:07,250 >> কিন্তু যদি GetString চূড়ান্ত অংশ মাধ্যমে এখানে আমরা পড়েছি, 492 00:30:07,250 --> 00:30:10,880 এবং আবার, প্রতি একক লাইন এখানে প্রতীতি হয় আজ এত গুরুত্বপূর্ণ না. 493 00:30:10,880 --> 00:30:14,830 কিন্তু শেষ পর্যন্ত আবার কল malloc বিজ্ঞপ্তি, এবং এটি বরাদ্দ 494 00:30:14,830 --> 00:30:16,980 অনেক ঠিক বাইট হিসাবে হিসাবে এটি স্ট্রিং জন্য প্রয়োজন 495 00:30:16,980 --> 00:30:21,620 এবং তারপর কলিং বিনামূল্যে দ্বারা দূরে ছোঁড়া, বেজায় বড় বাফার, 496 00:30:21,620 --> 00:30:23,510 যদি সত্যিই এটা অনেকবার দ্বিগুন বেশী. 497 00:30:23,510 --> 00:30:25,970 সংক্ষেপে বলতে গেলে, যে কিভাবে GetString হয়েছে এই সব সময় কাজ করে. 498 00:30:25,970 --> 00:30:30,100 সমস্ত এটি আছে একটি সময়ে একটি অক্ষর পড়তে আবার এবং আবার এবং আবার 499 00:30:30,100 --> 00:30:37,930 এবং প্রত্যেক সময় এটা কিছু অতিরিক্ত মেমরি প্রয়োজন, তা realloc জন্য কল করে অপারেটিং সিস্টেম জিজ্ঞেস. 500 00:30:37,930 --> 00:30:41,660 কোন প্রশ্ন? ঠিক আছে. 501 00:30:41,660 --> 00:30:45,220 >> একটি আক্রমণ. এখন যে আমরা বুঝতে পয়েন্টার, অথবা কমপক্ষে 502 00:30:45,220 --> 00:30:47,560 পয়েন্টার সাথে ক্রমবর্ধমান হারে পরিচিত, 503 00:30:47,560 --> 00:30:50,020 এর বিবেচনা করা যাক কিভাবে সারা বিশ্ব জুড়ে ভেঙ্গে আরম্ভ 504 00:30:50,020 --> 00:30:53,160 যদি আপনি বেশ adversarial ব্যবহারকারীদের বিরুদ্ধে আত্মরক্ষা না না, 505 00:30:53,160 --> 00:30:55,180 যারা আপনার সিস্টেমের মধ্যে হ্যাক করার চেষ্টা করছেন. 506 00:30:55,180 --> 00:31:00,260 মানুষ যারা কিছু রেজিস্ট্রেশন কোড circumventing দ্বারা আপনার সফ্টওয়্যার চুরি করার চেষ্টা করছেন 507 00:31:00,260 --> 00:31:02,150 যে তারা অন্যভাবে ইন টাইপ থাকতে পারে 508 00:31:02,150 --> 00:31:04,860 এই যেমন কটাক্ষপাত এখানে নিয়ে, যা শুধু সি কোড 509 00:31:04,860 --> 00:31:07,920 যে একটি নীচে মূল ফাংশন রয়েছে, যে একটা ফাংশন কল foo বিন্যাস, 510 00:31:07,920 --> 00:31:12,100 এবং এটি কি foo বিন্যাস হয় ক্ষণস্থায়ী? [ছাত্র] একটি যুক্তি. 511 00:31:12,100 --> 00:31:15,660 >> একা যুক্তি. সুতরাং argv [1], যা প্রথম শব্দ ব্যবহারকারী টাইপ অর্থ 512 00:31:15,660 --> 00:31:19,150 a.out বা যাই হোক না কেন পরে কমান্ড লাইনে প্রোগ্রাম বলা হয়. 513 00:31:19,150 --> 00:31:24,920 উপরের foo বিন্যাস, তাই, নেয় একটি গৃহস্থালি * মধ্যে, কিন্তু গৃহস্থালি * ঠিক কি? 514 00:31:24,920 --> 00:31:28,860 স্ট্রিং. এখানে এখন পর্যন্ত কিছুই নতুন, এবং স্ট্রিং ইচ্ছামত হয় বার বলা হচ্ছে. 515 00:31:28,860 --> 00:31:36,090 এখানে এই লাইন ইন, গৃহস্থালির কাজ গ [12] আধা - প্রযুক্তিগত ইংরেজি সাজানোর মধ্যে, কি, এই লাইন করছে? 516 00:31:36,090 --> 00:31:40,640 অ্যারে -? অক্ষর. সম্পর্কে 12 অক্ষরের একটি অ্যারের দিন. 517 00:31:40,640 --> 00:31:44,970 সুতরাং আমরা এই একটি বাফার কল পারে. এটা টেকনিক্যালি এর নামক গ, কিন্তু প্রোগ্রামিং মধ্যে একটি বাফার 518 00:31:44,970 --> 00:31:47,890 শুধু স্থান একটি গুচ্ছ যে আপনি কিছু উপাদান ইন লাগাতে পারেন অর্থ 519 00:31:47,890 --> 00:31:49,940 >> তারপর সর্বশেষে memcpy,, আমরা পূর্বে ব্যবহৃত না করেছি. 520 00:31:49,940 --> 00:31:52,380 কিন্তু সম্ভবত আপনি অনুমান করতে পারেন এটি কী জন্য প্রয়োজন. এটি মেমরি কপি. 521 00:31:52,380 --> 00:31:58,790 কি করব? ওয়েল, দৃশ্যতঃ এটা বার কপি করা, গ মধ্যে নিজের ইনপুট,, 522 00:31:58,790 --> 00:32:03,420 কিন্তু কেবল বার দৈর্ঘ্য. 523 00:32:03,420 --> 00:32:07,440 কিন্তু এখানে একটা বাগ আছে. 524 00:32:07,440 --> 00:32:14,500 ঠিক আছে, তাই টেকনিক্যালি আমরা সত্যিই strlen (বার) কি এক্স sizeof (গৃহস্থালির কাজ করা), যে সঠিক হবে. 525 00:32:14,500 --> 00:32:17,920 কিন্তু এখানে সবচেয়ে খারাপ ক্ষেত্রে, এর যে that's অনুমান করি - তাই, ঠিক আছে. 526 00:32:17,920 --> 00:32:23,760 তারপর 2 বাগ আছে. সুতরাং sizeof (গৃহস্থালির কাজ), সমস্ত অধিকার, আসুন এই সামান্য চওড়া করা. 527 00:32:23,760 --> 00:32:28,860 সুতরাং এখন এর এখনও আছে একটি বাগ সংশোধন করা, যা হয় কি? 528 00:32:28,860 --> 00:32:31,630 [ছাত্র উত্তর, অপাচ্য] কি জন্য >> চেক? ঠিক আছে, তাই আমরা চেক করা উচিত 529 00:32:31,630 --> 00:32:35,010 জন্য NULL, কারণ খারাপ জিনিষ যখন আপনার পয়েন্টার হয় NULL ঘটতে, 530 00:32:35,010 --> 00:32:38,490 কারণ আপনি আপ যাচ্ছে সেখানে শেষ হয়ে যাবে, এবং আপনি কি কখনও যাচ্ছে উচিত করা হবে হইনি যাও Null হতে পারে 531 00:32:38,490 --> 00:32:40,890 দ্বারা * অপারেটর সঙ্গে এটি dereferencing. 532 00:32:40,890 --> 00:32:45,250 তাই করা ভালো, এবং কি কি আমরা করছে? কথাটি এখানে আছে একটি ত্রুটি খুব. 533 00:32:45,250 --> 00:32:47,650 [ছাত্র উত্তর, অপাচ্য] 534 00:32:47,650 --> 00:32:51,340 >> তাই আপনি যদি argc ≥ 2 চেক? 535 00:32:51,340 --> 00:32:54,130 ঠিক আছে, তাই এখানে আছে এই প্রোগ্রামে 3 বাগ. 536 00:32:54,130 --> 00:33:00,080 আমরা যদি ব্যবহারকারী আসলে argv [1], ভাল করে কিছু টাইপ করছেন পরীক্ষণ না. 537 00:33:00,080 --> 00:33:02,240 তাই এর তৃতীয় বাগ? হাঁ? 538 00:33:02,240 --> 00:33:04,420 [ছাত্র উত্তর, অপাচ্য] >> গুড. 539 00:33:04,420 --> 00:33:09,590 সুতরাং আমরা একটি দৃশ্যকল্প চেক. আমরা পরোক্ষভাবে চেক করবেন আরো মেমরি কপি করবেন না 540 00:33:09,590 --> 00:33:12,800 তুলনায় বার দৈর্ঘ্য অতিক্রম করবে. 541 00:33:12,800 --> 00:33:15,720 তাই আপনি যদি ব্যবহারকারীকে স্ট্রিং টাইপ করা হয় 10 অক্ষর দীর্ঘ, 542 00:33:15,720 --> 00:33:18,260 এই, বলছে 'শুধু 10 টি অক্ষর কপি করুন.' করা হয় 543 00:33:18,260 --> 00:33:21,140 এবং যে এর মঁজুর করা, কিন্তু আছে কি যদি ব্যবহারকারী প্রম্পটে একটি শব্দ এবং টাইপ করা 544 00:33:21,140 --> 00:33:29,360 একটি 20 অক্ষর শব্দ ভালো; এই হয়, দণ্ড থেকে কি মধ্যে অনুলিপি 20 টি অক্ষর বলছে? 545 00:33:29,360 --> 00:33:32,840 গ, আমাদের বাফার হিসাবে অন্যথায় পরিচিত, যার অর্থ হল আপনি শুধু তথ্য লিখেছেন 546 00:33:32,840 --> 00:33:35,950 ২ 8 বাইট অবস্থানে যে আপনি নিজের না, 547 00:33:35,950 --> 00:33:38,320 এবং আপনি তাদের অর্থে যে আপনি তাদের জন্য বরাদ্দ কখনো কিনবেন না. 548 00:33:38,320 --> 00:33:41,190 তাই এই কি বাফার ওভারফ্লো আক্রমণ হিসাবে সাধারণত এর পরিচিত, 549 00:33:41,190 --> 00:33:46,650 বাফার বা পীড়ন করা আক্রমণ, অর্থে এবং এটি এর আক্রমনের যে যদি ব্যবহারকারী 550 00:33:46,650 --> 00:33:50,650 বা প্রোগ্রাম যা আপনার ফাংশন এর কলিং এই করছেন maliciously হয়, 551 00:33:50,650 --> 00:33:53,780 এরকম আসলে কি পরের বেশ খারাপ হতে পারে. 552 00:33:53,780 --> 00:33:55,690 >> করা যাক এর এখানে এই টি ছবি সময়ে একটি বর্ণন নিতে. 553 00:33:55,690 --> 00:33:59,070 এই ছবি আপনার মেমরি স্ট্যাকের প্রতিনিধিত্ব করে. 554 00:33:59,070 --> 00:34:01,050 প্রত্যাহার এবং প্রতিটি সময় আপনি একটি ফাংশন কল, 555 00:34:01,050 --> 00:34:04,520 আপনি এই স্ট্যাকের উপর সামান্যই ফ্রেম এবং তারপর অন্য পেতে এবং তারপর অন্য এবং তারপর আরেকটি. 556 00:34:04,520 --> 00:34:07,250 এবং এ পর্যন্ত আমরা করেছি মাত্র ধরনের আনমনা rectangles হিসাবে এই দূরে 557 00:34:07,250 --> 00:34:09,380 হয় সেখানে জাহাজে বা এখানে পর্দা. 558 00:34:09,380 --> 00:34:12,219 কিন্তু যদি আমরা যারা rectangles এক জুম, 559 00:34:12,219 --> 00:34:16,460 যখন আপনি একটি ফাংশন কল foo বিন্যাস, এটি সক্রিয় আউট যে স্ট্যাকের সেখানে আরো 560 00:34:16,460 --> 00:34:18,739 যে ফ্রেম এবং যে আয়তক্ষেত্র ভিতরে 561 00:34:18,739 --> 00:34:23,370 শুধু x এবং y এবং a ও b, swap-র মত আমরা যে বিষয়ে কথা বলছি হয়নি. 562 00:34:23,370 --> 00:34:25,949 এটা পরিনত হয় যে কিছু নিম্ন স্তরের বিবরণ দেওয়া হয়েছে, 563 00:34:25,949 --> 00:34:27,780 তাদের মধ্যে ফেরত ঠিকানা. 564 00:34:27,780 --> 00:34:33,020 সুতরাং এটি সক্রিয় করে আউট যখন প্রধান কলগুলির foo কমান্ডটি, প্রধান যাও foo কমান্ডটি শুনান আছে 565 00:34:33,020 --> 00:34:36,760 কম্পিউটার এর মেমরি কি প্রধান এর ঠিকানা হল. 566 00:34:36,760 --> 00:34:40,659 কারণ অন্যথায়, যত তাড়াতাড়ি foo এর মধ্যে এখানে এই কেস হিসাবে নির্বাহ করার জন্য এটা করা হয়, 567 00:34:40,659 --> 00:34:43,790 একবার আপনি foo বিন্যাস শেষে এই ঘনিষ্ঠ কোঁকড়া বক্রবন্ধনী পৌঁছানোর, 568 00:34:43,790 --> 00:34:48,860 কিভাবে নরক foo কমান্ডটি যেখানে প্রোগ্রাম সারাংশ নিয়ন্ত্রণ যাও হত্তয়া অনুমিত হয় আছে জানি? 569 00:34:48,860 --> 00:34:52,460 এটা সক্রিয় করে আউট যে যে প্রশ্নে যাও উত্তরটি যে লাল এখানে আয়তক্ষেত্র মধ্যে হয়. 570 00:34:52,460 --> 00:34:56,130 এই একটি পয়েন্টার প্রতিনিধিত্ব করে, এবং এটি কম্পিউটার যাও এর আপ যাও, অস্থায়ীভাবে সঞ্চয়, 571 00:34:56,130 --> 00:35:00,250 তথাকথিত স্ট্যাকের মূল ঠিকানা যাতে যত তাড়াতাড়ি foo কমান্ডটি নির্বাহ করার জন্য এটা করা হয়, 572 00:35:00,250 --> 00:35:04,110 কম্পিউটার জানে যেখানে এবং প্রধান মধ্যে কি লাইন যাও যাও ফিরে যান. 573 00:35:04,110 --> 00:35:06,900 সংরক্ষিত ফ্রেম পয়েন্টার এই একইভাবে সম্পর্কিত. 574 00:35:06,900 --> 00:35:09,620 চর * এখানে কি বার প্রতিনিধিত্ব করে? 575 00:35:09,620 --> 00:35:14,740 অবশ্য, এখন এই নীল অংশ এখানে foo বিন্যাস এর ফ্রেম, কি বার? 576 00:35:14,740 --> 00:35:18,300 ঠিক আছে, তাই বার শুধুমাত্র foo বিন্যাস ফাংশন আর্গুমেন্ট. 577 00:35:18,300 --> 00:35:20,720 >> তাই এখন আমরা পরিচিত ছবি এ ফিরে এসেছি. 578 00:35:20,720 --> 00:35:22,960 আরো পর্দায় পণ্যদ্রব্য এবং আরো distractions আছে 579 00:35:22,960 --> 00:35:27,490 কিন্তু আছে এই হালকা নীল সেগমেন্ট এটা কি আমরা chalkboard নেভিগেশন এড়িয়ে করা হয়েছে করেছি swap 'র ভালো কিছু জন্য অঙ্কন. 580 00:35:27,490 --> 00:35:31,890 যে foo এর জন্য ফ্রেম এবং এটি শুধুমাত্র জিনিস অধিকার এখন দণ্ড, 581 00:35:31,890 --> 00:35:34,630 যা এই পরামিতি. 582 00:35:34,630 --> 00:35:39,840 কিন্তু কি কি স্ট্যাকের মধ্যে, এই এখানে কোড অনুযায়ী হওয়া উচিত? 583 00:35:39,840 --> 00:35:44,280 চর গ [12]. সুতরাং আমরা মেমরি 12 স্কোয়ার দেখতে পাবেন, 584 00:35:44,280 --> 00:35:46,260 বরাদ্দ করা একটি পরিবর্তনশীল নামক গ যাও. 585 00:35:46,260 --> 00:35:48,340 এবং নিশ্চয় আমরা পর্দায় যে নেই. 586 00:35:48,340 --> 00:35:51,650 খুব উপরে আছে গ [0], এবং তারপর এই চিত্রটি লেখক 587 00:35:51,650 --> 00:35:55,130 বার স্কোয়ার সব অঙ্কন কিন্তু না বিরক্ত হয় প্রকৃতপক্ষে সেখানে সেখানে 12 588 00:35:55,130 --> 00:36:00,120 কারণ যদি আপনি নীচের অংশে ডানদিকে তাকান, গ [11], যদি 0 থেকে গণনা করা হয়, যেমন 12 বাইট. 589 00:36:00,120 --> 00:36:06,190 কিন্তু আছে এখানে এর সমস্যা: ইন যা দিকবিন্যাস গ করা হয় ক্রমবর্ধমান? 590 00:36:06,190 --> 00:36:10,390 শীর্ষ ডাউন সারাংশ সাজান, ডান? যদি এটি শীর্ষে আরম্ভ করা হয় এবং প্রসারণের সাথে তাল মিলিয়ে নীচের অংশে যাও, 591 00:36:10,390 --> 00:36:13,480 কিন্তু ভালো আমরা নিজেদেরকে অনেক বাকি রানওয়ে এখানে সব না তাকান. 592 00:36:13,480 --> 00:36:15,320 আমরা ধরনের করেছি একটি কোণার মধ্যে নিজেদেরকে রঙিন মূর্তিদ্বারা পরিশোভিত, 593 00:36:15,320 --> 00:36:20,210 এবং যে গ [11] দণ্ড, যা স্ট্যাকের ফ্রেম পয়েন্টার বিরুদ্ধে হয় ডান আপ বিরুদ্ধে হয় ডান আপ, 594 00:36:20,210 --> 00:36:23,800 যা ফিরতি ঠিকানা বিরুদ্ধে হয় ডান আপ; কোন আরো রুম এর সেখানে. 595 00:36:23,800 --> 00:36:26,100 তাই এর নিহিতার্থ তারপর, যদি আপনি স্ক্রু আপ, 596 00:36:26,100 --> 00:36:30,460 আপনি চেষ্টা করুন এবং একটি 12-বাইট বাফারের মধ্যে 20 বাইট পড়া? 597 00:36:30,460 --> 00:36:33,460 যেখানে যারা 8 অতিরিক্ত মাপ, বাইট হিসাবে করা হয় যাও হত্তয়া যাচ্ছে? 598 00:36:33,460 --> 00:36:36,370 অন্য সব কিছুর ভিতর, যা কিছু হয় সুপার গুরুত্বপূর্ণ. 599 00:36:36,370 --> 00:36:40,480 এবং সবচেয়ে গুরুত্বপূর্ণ বিষয় সম্ভাব্য,, একটি লাল বক্স আছে, ফিরতি ঠিকানা. 600 00:36:40,480 --> 00:36:44,720 কারণ আপনি যে অনুমান করা হয় দুর্ঘটনাবশতঃ বা adversarially 601 00:36:44,720 --> 00:36:48,040 যারা 4 বাইট, যে পয়েন্টার ঠিকানা মুছে ফেলা, 602 00:36:48,040 --> 00:36:53,190 ? শুধু সঙ্গে আবর্জনা, কিন্তু সঙ্গে একটি সংখ্যা যা মেমরির মধ্যে একটি প্রকৃত ঠিকানা প্রতিনিধিত্ব ঘটবে না 603 00:36:53,190 --> 00:36:55,930 Implicaiton কি, যুক্তি? 604 00:36:55,930 --> 00:36:59,080 [ছাত্র উত্তর, অপাচ্য] >> যথাযথভাবে. যখন foo এর প্রত্যাবর্তন 605 00:36:59,080 --> 00:37:03,560 কোঁকড়া বক্রবন্ধনী যে এবং হিট, প্রোগ্রাম যাও যাও প্রধান যাও প্রত্যাবর্তন হইনি এগিয়ে যাওয়া যাচ্ছে করা হয়, 606 00:37:03,560 --> 00:37:08,320 এটি যে লাল বাক্সে যাই হোক ঠিকানা হল ফিরে যাচ্ছে. 607 00:37:08,320 --> 00:37:11,560 >> এখন, এ circumventing সফ্টওয়্যার নিবন্ধনের ক্ষেত্রে, 608 00:37:11,560 --> 00:37:14,400 ঠিকানা যে এর ফিরে হচ্ছে কি হয় ফাংশন হয় 609 00:37:14,400 --> 00:37:18,820 যে সাধারনতঃ পরে আপনি সফ্টওয়্যার জন্য অর্থ প্রদান করা করেছি নামক এবং আপনার নিবন্ধীকরণ কোড দ্বারা ইনপুট করা পরার? 610 00:37:18,820 --> 00:37:23,160 আপনি ঘোঁজ - ঘাঁজ কম্পিউটার সারাংশ এখানে যাচ্ছে হইনি মধ্যে, সাজাতে কিন্তু আছে পরিবর্তে, যাচ্ছে এখানে আপ করতে পারে নি. 611 00:37:23,160 --> 00:37:27,950 বা, যদি আপনি কি সত্যিই IM এর প্রশংসক নন সেয়ান, একটি দুশ্মন প্রকৃতপক্ষে কীবোর্ড সময়ে মধ্যে টাইপ করতে পারেন, 612 00:37:27,950 --> 00:37:32,500 উদাহরণস্বরূপ, একটি প্রকৃত শব্দ না, না 20 টি অক্ষর, কিন্তু অনুমান সে 613 00:37:32,500 --> 00:37:36,200 কিছু অক্ষর আছে যা কোড ধরনের প্রতিনিধিত্ব করে? 614 00:37:36,200 --> 00:37:38,860 এবং তা সি কোড করা যাচ্ছে না, এটা অক্ষর ব্যবহার করা যাচ্ছে 615 00:37:38,860 --> 00:37:42,920 যে মেশিন কোড বাইনারি, 0 এবং 1 এর এর প্রতিনিধিত্ব করেন. 616 00:37:42,920 --> 00:37:46,740 কিন্তু আছে ঠাউর তারা IM এর প্রশংসক নন সেয়ান যথেষ্ট যাও যে, GetString প্রম্পট মধ্যে যে কোন ভাবেই হউক যাও করে আটকে দিন do 617 00:37:46,740 --> 00:37:49,460 কিছু যে মূলত হয় কোড কম্পাইল, 618 00:37:49,460 --> 00:37:56,900 এবং শেষ 4 মাপ, বাইট হিসাবে যে ফিরতি ঠিকানা, মুছে ফেলা এবং কি ঠিকানা যে ইনপুট আছে do? 619 00:37:56,900 --> 00:38:01,860 এটা এই লাল আয়তক্ষেত্র বাফার সারাংশ প্রথম বাইটটি সারাংশ ঠিকানা মধ্যে সঞ্চয় করে. 620 00:38:01,860 --> 00:38:04,270 সুতরাং আপনি যাও সত্যিই চতুর হত্তয়া আছে, এবং এই হয় ট্রায়াল এবং ত্রুটি সারাংশ একটি অনেক 621 00:38:04,270 --> 00:38:08,500 জন্য আছে খারাপ লেগেছে, কিন্তু আপনি যদি আউট কিভাবে বড় এই বাফার হয় জিনিসটা করতে পারেন, 622 00:38:08,500 --> 00:38:12,170 যেমন যে শেষ ইনপুট মধ্যে কয়েক বাইট যে আপনি প্রোগ্রাম প্রদান 623 00:38:12,170 --> 00:38:15,970 যাও সমতুল্য আপনার বাফার শুরুর ঠিকানা হতে পারে এরকম, 624 00:38:15,970 --> 00:38:22,270 আপনি এটা করতে পারেন. যদি আমরা বলতে সাধারনতঃ,, হ্যালো, এবং \ 0, যে এর কি বাফার মধ্যে সমাপ্ত আপ. 625 00:38:22,270 --> 00:38:27,860 কিন্তু আছে যদি আমরা IM এর প্রশংসক নন আরো সেয়ান, এবং আমরা কি আমরা জেনেরিক আক্রমনের কোড ফোন করবো সঙ্গে যে বাফার ভরাট, 626 00:38:27,860 --> 00:38:31,920 , A,, A,, A, একটি: আক্রমণ, আক্রমনের, আক্রমনের, আক্রমনের, যেখানে এই মাত্র এমন কিছু বিষয় যা কিছু খারাপ আছে. 627 00:38:31,920 --> 00:38:35,190 ভাল, কি যদি আপনি সত্যিই চতুর হন, আপনি এই কাজ করতে পারে: 628 00:38:35,190 --> 00:38:41,740 লাল এখানে বাক্স ইন হয় সংখ্যার একটি ক্রম: 80,, CO, 35, 08. 629 00:38:41,740 --> 00:38:44,890 উল্লেখ্য যে নম্বর যে এখানে আপ সাথে মেলে. 630 00:38:44,890 --> 00:38:47,280 এটা বিপরীত ক্রমে আছে, কিন্তু যে অন্য কিছু সময় আরও. 631 00:38:47,280 --> 00:38:51,430 উল্লেখ্য, এই ফিরতি ঠিকানা করেনি ইচ্ছাকৃতভাবে করা হয়েছে রদবদল 632 00:38:51,430 --> 00:38:54,970 যাও ঠিকানা এখানে সমান, প্রধান ঠিকানা না. 633 00:38:54,970 --> 00:39:00,170 তাই আপনি যদি খারাপ লোক হয় সুপার স্মার্ট, তিনি যে আক্রমণ কোড অন্তর্ভুক্ত করতে হবে 634 00:39:00,170 --> 00:39:02,890 কিছু, ভালো 'ব্যবহারকারী এর ফাইলগুলি সারাংশ সমস্ত. মুছে দিন' 635 00:39:02,890 --> 00:39:06,320 বা 'পাসওয়ার্ডগুলি অনুলিপি,' বা 'একটি ব্যবহারকারীর অ্যাকাউন্টের সাথে যে আমি লগ ইন করতে পারবেন.' 636 00:39:06,320 --> 00:39:10,130 এ সব কিছু; এবং এই উভয় বিপদ এবং সি শক্তি 637 00:39:10,130 --> 00:39:12,900 কারণ আপনি পয়েন্টার মাধ্যমে মেমরি এক্সেস আছে 638 00:39:12,900 --> 00:39:15,950 এবং সেইজন্য আপনি কিছু আপনি একটি কম্পিউটার এর মেমরিতে চান লিখতে পারেন. 639 00:39:15,950 --> 00:39:19,290 আপনি একটি কম্পিউটার কিছু সহজভাবে চান দ্বারা আপনি কি করতে পারেন 640 00:39:19,290 --> 00:39:22,780 কখনও এটা নিজস্ব মেমরি স্পেস মধ্যে প্রায় তিড়িং লাফ. 641 00:39:22,780 --> 00:39:27,230 এবং তাই, এই দিন, তাই অনেক প্রোগ্রাম এবং অনেক ওয়েবসাইটে যে বোঝাপড়া হয় 642 00:39:27,230 --> 00:39:29,730 এই সুবিধার সুযোগ গ্রহণ মানুষের ফুটান. 643 00:39:29,730 --> 00:39:32,510 এবং এই একটি অতি - পরিশীলিত আক্রমণের মতো মনে হতে পারে, 644 00:39:32,510 --> 00:39:34,220 কিন্তু এটা সবসময় যে ভাবে শুরু হয় না. 645 00:39:34,220 --> 00:39:36,770 >> বাস্তবতা হল যে কি খারাপ মানুষ সাধারণত করতে হবে, 646 00:39:36,770 --> 00:39:41,470 এটি একটি কমান্ড লাইনে একটি প্রোগ্রাম অথবা একটি GUI লগ প্রোগ্রাম বা ওয়েবসাইট, 647 00:39:41,470 --> 00:39:43,290 হয় শুধু আপনি ছাইপাঁশ প্রদান শুরু. 648 00:39:43,290 --> 00:39:46,940 আপনি একটি অনুসন্ধান ক্ষেত্র এবং আঘাত প্রবেশ বড় শব্দ টাইপ করুন, 649 00:39:46,940 --> 00:39:49,030 এবং আপনি যদি ওয়েবসাইট ক্র্যাশ দেখতে অপেক্ষা করুন. 650 00:39:49,030 --> 00:39:53,270 অথবা আপনি যদি কিছু প্রোগ্রাম ত্রুটির বার্তা টেপা দেখতে অপেক্ষা করুন. 651 00:39:53,270 --> 00:39:55,480 কারণ যদি আপনি পেতে ভাগ্যবান, হিসাবে খারাপ লোক, 652 00:39:55,480 --> 00:39:59,610 এবং আপনি কিছু ছবি ইনপুট যে ক্র্যাশ প্রোগ্রাম প্রদান, 653 00:39:59,610 --> 00:40:02,280 মানে প্রোগ্রামার আপনার খারাপ আচরণ বার কহা না 654 00:40:02,280 --> 00:40:05,420 যার মানে যথেষ্ট প্রচেষ্টার সঙ্গে আপনি সম্ভবত পারেন,, 655 00:40:05,420 --> 00:40:09,870 যথেষ্ট শুদ্ধাশুদ্ধি, জিনিসটা কিভাবে একটি আরো সঠিক আক্রমণ মজুরি. 656 00:40:09,870 --> 00:40:15,900 তাই যতটা নিরাপত্তা একটি অংশ এই আক্রমণ এড়ানো হয় ঠিক না পুরাপুরি, কিন্তু তাদের সনাক্ত 657 00:40:15,900 --> 00:40:20,250 এবং প্রকৃতপক্ষে লগের এ খুঁজছেন এবং এইজন্য কি ছবি ইনপুট আপনার ওয়েবসাইটে টাইপ মানুষ আছে. 658 00:40:20,250 --> 00:40:26,040 কি খঁোজা আপনার ওয়েবসাইটে আছে মানুষের উদ্বেল বাফার আশা টাইপ? 659 00:40:26,040 --> 00:40:28,900 এবং এই সব কি একটি অ্যারের সহজ বুনিয়াদি যাও boils ডাউন, 660 00:40:28,900 --> 00:40:32,510 এবং এটি কি এবং বরাদ্দ মেমরির ব্যবহার মানে? 661 00:40:32,510 --> 00:40:34,920 এবং এর সাথে সম্পর্কিত যে খুব,, এই. 662 00:40:34,920 --> 00:40:37,520 >> তাই আসুন শুধু ভিতরে একটি হার্ড ড্রাইভের কটাক্ষে দেখা এখনো আবার. 663 00:40:37,520 --> 00:40:40,190 তাহলে আপনি প্রত্যাহার থেকে একটি বা দুটি সপ্তাহ আগে যখন আপনি ফাইল টেনে 664 00:40:40,190 --> 00:40:45,470 আপনার রাসায়নিক পদ্ধতিতে ব্যবহার করা জিনিসকে আবার ব্যবহারের উপযোগী করে তোলা বিন বা ট্র্যাশ করতে পারেন, কি হয়? 665 00:40:45,470 --> 00:40:47,850 [ছাত্র] কিছুই নেই. >> হ্যাঁ, একেবারে কিছুই না. অবশেষে আপনি যদি রান কম 666 00:40:47,850 --> 00:40:51,370 ডিস্কের স্থান উপর, উইন্ডোজ বা ম্যাক অপারেটিং সিস্টেম আপনার জন্য ফাইল মুছে ফেলা হবে. 667 00:40:51,370 --> 00:40:53,670 তবে আপনি যদি সেখানে কিছু টেনে আনুন, তারপর সব সময়ে নিরাপদ নয়. 668 00:40:53,670 --> 00:40:56,550 আপনার সমস্ত roomate, বন্ধু বা পরিবারের সদস্য না হয় আছে ডবল ক্লিক করুন এবং voila. 669 00:40:56,550 --> 00:40:59,720 সব ক্রটিযুক্ত ফাইল মুছতে চেষ্টা আছে. 670 00:40:59,720 --> 00:41:02,840 সুতরাং আমাদের অধিকাংশ অন্তত জানেন যে আপনি ডান বা ক্লিক ক্লিক নিয়ন্ত্রণ আছে 671 00:41:02,840 --> 00:41:05,320 এবং ট্র্যাশ খালি, অথবা যে ভালো কিছু. 672 00:41:05,320 --> 00:41:07,900 কিন্তু তারপর, যে বেশ কৌতুক না. 673 00:41:07,900 --> 00:41:11,340 কারণ কি যখন আপনি আপনার হার্ড ড্রাইভে একটি ফাইল আছে 674 00:41:11,340 --> 00:41:14,590 নথিটি বা কিছু কিছু শব্দ যে কোন JPEG প্রতিনিধিত্ব করে? 675 00:41:14,590 --> 00:41:18,820 এবং এই আপনার হার্ড ড্রাইভের প্রতিনিধিত্ব করে, এবং এর যাক বলতে এখানে এই কাঠের ছিলকা যে ফাইলটি প্রতিনিধিত্ব করে, 676 00:41:18,820 --> 00:41:21,640 এবং এটি একটি 0 এবং 1 এর এর আভা গঠিত হয়. 677 00:41:21,640 --> 00:41:25,470 যখন আপনি trashcan বা রাসায়নিক পদ্ধতিতে ব্যবহার করা জিনিসকে আবার ব্যবহারের উপযোগী করে তোলা বিন শুধুমাত্র যে ফাইলটি টানুন না কি হয়, 678 00:41:25,470 --> 00:41:30,390 কিন্তু এটা খালি? 679 00:41:30,390 --> 00:41:32,820 কিছুই সাজান. এটা এখন এর একেবারে কিছুই না. 680 00:41:32,820 --> 00:41:37,630 এখন এটি শুধু কিছুই, কারণ সামান্য কিছু এই টেবিল আকারে ঘটবে. 681 00:41:37,630 --> 00:41:41,170 তাই ডাটাবেস অথবা টেবিল কিছু একটা কম্পিউটার এর ভিতর ধরনের মেমরি আছে 682 00:41:41,170 --> 00:41:44,470 যে মূলত ফাইলের নামের জন্য 1 টি কলাম আছে, 683 00:41:44,470 --> 00:41:50,550 এবং ফাইল এর অবস্থান, যেখানে এই অবস্থান 123, শুধু একটা র্যান্ডম সংখ্যা হতে পারে জন্য 1 টি কলাম. 684 00:41:50,550 --> 00:41:58,270 সুতরাং আমরা x.jpg মত, এবং অবস্থান 123 থাকতে পারে. 685 00:41:58,270 --> 00:42:02,870 এবং তারপরে কি ঘটবে, যখন আপনি আপনার ট্র্যাশ খালি করতে? 686 00:42:02,870 --> 00:42:06,720 যে দূরে চলে যায়. কিন্তু কি জন্য দূরে যেতে না হয় এর 0 এবং 1 এর. 687 00:42:06,720 --> 00:42:09,690 >> তাই, তাহলে এর, সংযোগ যাও 4 pset? 688 00:42:09,690 --> 00:42:13,460 ওয়েল, সঙ্গে pset 4, শুধুমাত্র কারণ ঘটনাক্রমে আমরা মুছে ফেলা করেছি 689 00:42:13,460 --> 00:42:15,890 কম্প্যাক্ট ফ্ল্যাশ কার্ড যে এই ছবিগুলোর সব ছিল, 690 00:42:15,890 --> 00:42:18,710 অথবা শুধু কারণ দুর্ভাগ্য দ্বারা এটি দূষিত, 691 00:42:18,710 --> 00:42:21,170 কিন্তু এর যে 0 এবং 1 এর এখনও সেখানে না না মানে. 692 00:42:21,170 --> 00:42:23,920 হয়তো এদের মধ্যে কয়েকটি কারণ কিছু বেশী দূষিত হারিয়ে যায় 693 00:42:23,920 --> 00:42:26,530 ইন্দ্রিয় যে কিছু 0 এর ওঠে 1 এর এবং 1 এর মধ্যে ওঠে 0 এর. 694 00:42:26,530 --> 00:42:30,460 খারাপ জিনিসের কারণে বগী সফ্টওয়্যার বা ত্রুটিপূর্ণ হার্ডওয়্যার ঘটতে পারে. 695 00:42:30,460 --> 00:42:33,510 কিন্তু যারা বিট অনেক হয়ত, তাদের মধ্যে এমন কি 100% এখনও আছে, 696 00:42:33,510 --> 00:42:38,330 এটি শুধু যে কম্পিউটার বা ক্যামেরা যেখানে কোন JPEG 1 শুরু না জানা 697 00:42:38,330 --> 00:42:41,660 এবং যেখানে কোন JPEG 2 শুরু, কিন্তু যদি আপনি, প্রোগ্রামার, 698 00:42:41,660 --> 00:42:45,800 কাণ্ডজ্ঞান একটি বিট, যেখানে যারা JPEGs হয় বা তারা কি অনুরূপ সঙ্গে, জানা, 699 00:42:45,800 --> 00:42:49,570 আপনি এর 0 এবং 1 এর বিশ্লেষণ এবং, বলে 'খুশি করতে পারেন. কোন JPEG. কোন JPEG উত্তেজনা,. ' 700 00:42:49,570 --> 00:42:52,830 আপনি মূলত জন্য শুধু একটি সঙ্গে একটি প্রোগ্রাম বা লিখতে পারে যখন লুপ 701 00:42:52,830 --> 00:42:56,100 যে যারা প্রতিটি ফাইলের এবং প্রতি এক recovers. 702 00:42:56,100 --> 00:42:59,360 আমি তখন পাঠ, আরম্ভ "নিরাপদভাবে" আপনার ফাইল erasing হয় 703 00:42:59,360 --> 00:43:01,720 যদি আপনি এই পুরাপুরি এড়াতে চাই. হ্যাঁ? 704 00:43:01,720 --> 00:43:06,940 [ছাত্র প্রশ্ন, অপাচ্য] 705 00:43:06,940 --> 00:43:11,150 >> আরো মেমরি তুলনায় আপনি আগে কি আছে - 706 00:43:11,150 --> 00:43:14,790 ওহ! ভাল প্রশ্ন. তাই কেন, তারপর, পরে ট্র্যাশ খালি রাখুন, 707 00:43:14,790 --> 00:43:18,300 কিন্তু আপনার কম্পিউটার আপনাকে বলে যে আপনি আরো মুক্ত স্থান তুলনায় আপনি আগে কি আছে? 708 00:43:18,300 --> 00:43:22,450 সংক্ষেপে ইন, কারণ এটা মিথ্যা না. আরো টেকনিক্যালি, আপনি আরও জায়গা আছে. 709 00:43:22,450 --> 00:43:26,720 কারণ এখন আপনি বলেন, আপনি অন্যান্য স্টাফ করা যেখানে একবার যে ফাইল করতে পারেন, 710 00:43:26,720 --> 00:43:28,930 কিন্তু যে বিট এ চলে না মানে, 711 00:43:28,930 --> 00:43:33,070 এবং যে সকল 0 বিট এর পরিবর্তিত হয় উদাহরণস্বরূপ হচ্ছে, আপনার সুরক্ষার জন্য, না মানে. 712 00:43:33,070 --> 00:43:37,520 বিপরীতে, যদি আপনি "নিরাপদভাবে" ফাইল মুছে ফেলুন, অথবা শারীরিক ডিভাইস ধ্বংস, 713 00:43:37,520 --> 00:43:40,810 যে সত্যিই একমাত্র উপায়, কখনও কখনও যে আশেপাশে. 714 00:43:40,810 --> 00:43:45,300 কারণ আমরা যে আধা - ভয়ের নোট করবেন ছেড়ে না, এবং আমরা সোমবার আপনি দেখতে পাবেন. 715 00:43:45,300 --> 00:43:52,810 CS50.TV