1 00:00:00,670 --> 00:00:07,060 OK, we have located the colonel on the other person in this video where we are finished off our module 2 00:00:07,840 --> 00:00:08,840 in our system. 3 00:00:08,860 --> 00:00:14,590 Well, the program opens, so file a hunter will return to the user if the operation succeeds. 4 00:00:15,280 --> 00:00:19,390 So Haddo is an index to the list of open files which is saved. 5 00:00:19,390 --> 00:00:20,910 Infrastructure file descriptor. 6 00:00:20,910 --> 00:00:22,870 Appadurai in the process table. 7 00:00:24,000 --> 00:00:29,730 As you can see in this example, we have two processes, both of which opened some files. 8 00:00:30,700 --> 00:00:36,670 Through each entrance of the sculpture Appointer A in the process, we can find out who scraped our 9 00:00:36,670 --> 00:00:42,820 table and trace on each entry in the scripture table, then points to the foul control blog. 10 00:00:44,280 --> 00:00:50,470 Which is actually a cash of the country when they perform some operations on the file. 11 00:00:50,730 --> 00:00:54,090 We are actually using the FCP to retrieve the file info. 12 00:00:54,600 --> 00:00:59,160 So it's a system pretty much all of the file operations are related to the structure. 13 00:01:00,850 --> 00:01:02,170 OK, let's get started. 14 00:01:03,220 --> 00:01:08,140 So far, modu in the kernel project, it's the same as the one we just rolled in Lawder. 15 00:01:08,740 --> 00:01:14,640 So the difference is that we just add more functions in fantasy and a flat out age in the current product. 16 00:01:15,190 --> 00:01:17,620 So let's see what we have in the file. 17 00:01:19,340 --> 00:01:20,540 In the file, Heider. 18 00:01:24,610 --> 00:01:28,180 We at F.S.B structure under Felty script are table. 19 00:01:29,200 --> 00:01:36,190 In the structure of Sepi, we have our name to starting cluster number Serota director at entry index. 20 00:01:36,550 --> 00:01:38,280 So file size under control. 21 00:01:39,270 --> 00:01:45,300 Well, if it's is opened to control, we increment so to culture indicates how many times we currently 22 00:01:45,300 --> 00:01:46,080 open the file. 23 00:01:47,480 --> 00:01:54,380 The structure of our scripture is simple, we have only two members, so ABCP pointer and the position 24 00:01:54,380 --> 00:01:58,190 indicates we are the last time the process reads are in the file. 25 00:01:59,070 --> 00:02:04,920 As we see in the slide, we need faulty scripture, pintura, in the process to link this to structures 26 00:02:04,920 --> 00:02:05,400 together. 27 00:02:06,180 --> 00:02:07,170 So let's take a look. 28 00:02:08,910 --> 00:02:10,440 In the process, high profile. 29 00:02:14,370 --> 00:02:21,140 We add a new member so far out scripture, poetry in the process structure so that we know which files. 30 00:02:21,330 --> 00:02:27,570 Process opened in this example, one hundred appointers stored in the process at the same time. 31 00:02:28,570 --> 00:02:30,240 OK, that's it for the how to file. 32 00:02:31,220 --> 00:02:33,440 Let's see what we have got to see. 33 00:02:35,780 --> 00:02:42,530 The first function, we will look at a sketch of US pbp since the colonel is running and to Colonel 34 00:02:42,530 --> 00:02:49,360 Reteam is set up now Wakamatsu of Physical Base authorized to watch our troops using Macroom Betawi. 35 00:02:51,320 --> 00:02:57,080 In the initialization function, after we check the first 60 image, the next thing we are going to 36 00:02:57,080 --> 00:03:01,540 do is we are going to initialize F.S.B unfelt descriptor table. 37 00:03:02,300 --> 00:03:07,640 Those two structures are only resident in the memory and we will perform operations on the file with 38 00:03:07,640 --> 00:03:07,920 some. 39 00:03:08,820 --> 00:03:10,590 So what do you find to appointers? 40 00:03:13,390 --> 00:03:16,090 At Subtable Unfelt in scripture table. 41 00:03:17,590 --> 00:03:19,000 To do the initialization. 42 00:03:20,460 --> 00:03:27,520 We call function initialise, IACP and initialise file descriptor table in the function we allocate 43 00:03:27,520 --> 00:03:29,580 to page by Correo function khattak. 44 00:03:30,700 --> 00:03:36,400 And to save the rest of the verbal ABCP table, if there is no Pedro available, we return false. 45 00:03:36,760 --> 00:03:41,920 Otherwise allocation succeeds and we start the page with value zero and the return to. 46 00:03:43,710 --> 00:03:50,490 Function initialise faulty scripture table follows the same Stipe's after we return from these two functions. 47 00:03:52,130 --> 00:03:57,800 We asserts the initialization of these two structures is done because all the our operations are based 48 00:03:57,800 --> 00:03:58,850 on these structures. 49 00:04:00,090 --> 00:04:02,250 All right, that's right, open file function. 50 00:04:08,180 --> 00:04:15,620 To open a file, all we need to do in this system is file entry into process as well as our descriptor 51 00:04:15,620 --> 00:04:17,760 table and then we're served. 52 00:04:17,779 --> 00:04:24,320 So far we are trying to open, if it is found, we copies of our info, such as a file name starting 53 00:04:24,320 --> 00:04:27,770 cluster index to the F.S.B table entry for later use. 54 00:04:28,520 --> 00:04:31,700 The last thing where we were to Asialink that subtable entry. 55 00:04:32,030 --> 00:04:35,900 So faulty scriptura table entry and our entry in the process. 56 00:04:37,610 --> 00:04:41,600 If any one of these steps fails to open, operation fails. 57 00:04:42,850 --> 00:04:45,100 OK, with this in mind, let's get started. 58 00:04:45,820 --> 00:04:53,110 So a function takes two parameters to a process and a name, so variables we need in this function felt 59 00:04:53,230 --> 00:04:55,960 in scripture, the scripture index. 60 00:04:56,350 --> 00:04:59,770 So directory entry index and F.S.B table index. 61 00:05:01,160 --> 00:05:04,330 Then we go ahead and find your free slot in the fall table. 62 00:05:05,210 --> 00:05:11,900 In the process, high profile, we have seen so far table, which can hold hundred entries if we follow 63 00:05:11,900 --> 00:05:14,600 through while we call this the index to file descriptor. 64 00:05:15,730 --> 00:05:22,120 Then we check afte is equal to minus one, it means that we don't find a free table entry and we return 65 00:05:22,120 --> 00:05:24,670 minus one, indicating that open file failed. 66 00:05:26,120 --> 00:05:27,830 Otherwise, we will go to next stop. 67 00:05:28,820 --> 00:05:31,220 Thunder free file, descriptor tape tree. 68 00:05:32,320 --> 00:05:38,700 Remember, in the initialization function, we advocated a table with one memory page, so here we divide 69 00:05:38,720 --> 00:05:41,110 so precise by the sides of the table entry. 70 00:05:41,980 --> 00:05:47,980 If we find that the table entry is not used, we call the index to the descriptor index and breaks the 71 00:05:47,980 --> 00:05:48,310 log. 72 00:05:49,290 --> 00:05:51,660 Next, we check Sovaldi scripter inducts. 73 00:05:52,620 --> 00:05:55,560 If there is no entry available to us, we simply return. 74 00:05:56,550 --> 00:06:00,120 All right, the next step is funds to file by the functions such file. 75 00:06:01,960 --> 00:06:07,930 We have discussed the function before it returns the index of the root directory entry if the return 76 00:06:07,930 --> 00:06:09,610 value is the maximum value. 77 00:06:10,060 --> 00:06:15,760 We know that the AFL is not Phonte, otherwise we can locate the directory entry with index. 78 00:06:17,270 --> 00:06:22,850 The next nothing we are going to do is we are going to cash the directory entry on equipment to counter 79 00:06:22,850 --> 00:06:25,130 by calling a function get F.S.B. 80 00:06:26,310 --> 00:06:34,110 We will discuss it in a minute, so function returns are index of subtable, and we will use the index 81 00:06:34,110 --> 00:06:36,720 to reference the data in subtable. 82 00:06:38,130 --> 00:06:40,740 At this point, we the structures together. 83 00:06:41,850 --> 00:06:47,790 First off, we said the descriptor table entry was zero, then we call it the price of the ABS-CBN table 84 00:06:47,790 --> 00:06:51,150 entry to the F.S.B field of study scriptura table entry. 85 00:06:52,270 --> 00:06:58,030 Next, the way points out table of the to descriptor table entry and we are done. 86 00:06:59,150 --> 00:07:04,070 You'll see two of our handle we returned to the user is our creator index of the table, and in the 87 00:07:04,070 --> 00:07:11,600 process when the user send a request with our handle, the system will find the corresponding FCP entry 88 00:07:12,020 --> 00:07:13,010 with the handle. 89 00:07:14,940 --> 00:07:18,240 All right, next, we implement get F.S.B function. 90 00:07:23,680 --> 00:07:30,130 As you can see, it takes one parameter, which is a route to actually entry under the index of subtable 91 00:07:30,130 --> 00:07:30,610 and free. 92 00:07:31,580 --> 00:07:36,890 Because we need to cash the data of the derogatory entry, we define verbal derogatory table. 93 00:07:37,720 --> 00:07:44,800 First off, we checked the ABCP table, if the contrary zero, then the data of the file is not cached. 94 00:07:45,250 --> 00:07:50,290 So we get to actually copy the directory index to the table for later use. 95 00:07:51,210 --> 00:07:54,300 The only copies of file size, so cadastre index. 96 00:07:55,320 --> 00:07:58,530 Also, we call this a foul name, an extension name, so the table. 97 00:07:59,750 --> 00:08:04,160 Don't forget to incremental culture on the regions index of the subtable entry. 98 00:08:05,030 --> 00:08:10,220 You can see the index of the subtable on the road to direct entry at the same system. 99 00:08:11,360 --> 00:08:13,440 OK, that's it for open file function. 100 00:08:14,450 --> 00:08:17,150 Let's see what we were do to function closed file. 101 00:08:22,830 --> 00:08:28,570 To close a file is simple, all we need to do is document entry, contra and unlink. 102 00:08:28,680 --> 00:08:35,520 I've KBE and a faulty scripter entry, so parameters it takes as a process and faulty scripture. 103 00:08:36,470 --> 00:08:43,700 Tutankhamen's a container of F.S.B entry we call function port F.S.B unpause to F.S.B, point your voyage. 104 00:08:44,800 --> 00:08:50,900 After we take on as a culture, we can link to ABS-CBN Tree by setting the F.S.B you is known as the 105 00:08:50,930 --> 00:08:52,860 Arlington County Scripter Table as well. 106 00:08:54,720 --> 00:08:59,250 Function F.S.B is simple, all it does is decrements FCP Contre. 107 00:09:00,310 --> 00:09:06,680 Here we perform a check, we assume that a counter is greater than zero because normally we should close 108 00:09:06,680 --> 00:09:08,280 the file after we open it. 109 00:09:09,670 --> 00:09:16,510 All right, so when the file is opened, so if our data is cashed in the F.S.B table and then we can 110 00:09:16,510 --> 00:09:21,370 easily retrieve the file info, suppose we want to get a file size. 111 00:09:21,700 --> 00:09:24,460 We can create a function cadfael size. 112 00:09:30,000 --> 00:09:36,370 So prompters, we need to locate a file on the process and file descriptor, then we can simply locate 113 00:09:36,410 --> 00:09:43,470 the entry of the file using file descriptor index and gather file size with a field file size of c.B 114 00:09:43,470 --> 00:09:43,910 entry. 115 00:09:44,730 --> 00:09:45,870 So it's really simple. 116 00:09:46,680 --> 00:09:47,660 OK, let's move on. 117 00:09:49,040 --> 00:09:49,450 So that's. 118 00:09:49,790 --> 00:09:51,890 We are going to talk about is read file. 119 00:09:55,020 --> 00:10:01,080 This function is different from what we have seen in the previous lecture, in this example, so functional 120 00:10:01,090 --> 00:10:04,590 read file uses, so cached, the info is F.S.B table entry. 121 00:10:05,370 --> 00:10:13,440 So the parameters we use here as a precise descriptor so far for analysis of the data we want to reach. 122 00:10:14,380 --> 00:10:20,410 So you can see we use process and effective scripture to locate a file instead of using starting cluster 123 00:10:20,410 --> 00:10:22,120 index as we did before. 124 00:10:23,140 --> 00:10:28,060 In the function, we're first to retrieve the position and file size, then we do a test. 125 00:10:29,040 --> 00:10:35,340 If the position plus the size of data we want to rate is greater than the file size is an invalid request 126 00:10:35,670 --> 00:10:36,450 under way written. 127 00:10:36,480 --> 00:10:38,520 I just want indicating that this is an error. 128 00:10:39,360 --> 00:10:42,480 After the check passed, we can read into our data. 129 00:10:43,540 --> 00:10:47,980 Just starting class, the value is retrieved from the cash involved in the F.S.B. 130 00:10:49,180 --> 00:10:55,690 Here we as a premature position from which we raise the data after it is done, we update the position 131 00:10:55,690 --> 00:11:00,610 by adding the size of data we actually rate and easy and we return the size. 132 00:11:04,190 --> 00:11:06,980 So let's take a look at the raw data function. 133 00:11:08,630 --> 00:11:13,790 As you can see, this function is a lot different from what we have implemented in the loader project 134 00:11:14,720 --> 00:11:17,160 since we add a new parameter position. 135 00:11:17,510 --> 00:11:23,750 We need two more variables, Göncz and offsite to calculate the startled price of the data we want to 136 00:11:23,750 --> 00:11:24,380 rate from. 137 00:11:25,450 --> 00:11:30,110 So our book is used to calculate the starting cluster where we read the data. 138 00:11:30,880 --> 00:11:37,510 So we divide the position by cluster size so far off site is off site into the cluster we just look 139 00:11:37,510 --> 00:11:37,780 at. 140 00:11:39,060 --> 00:11:45,690 OK, to locate the correct data we use, follow up to find the cadastre value and use this value as 141 00:11:45,690 --> 00:11:51,350 an index to find the that's cluster value until we get to the cluster specified by the variable can't. 142 00:11:52,310 --> 00:11:56,430 Here you can see index is initialized with the starting cluster index. 143 00:11:57,540 --> 00:12:04,410 So we call function Galactus the value to retrieve the next cluster index and also asserted that the 144 00:12:04,410 --> 00:12:10,530 cluster value is valid before we get to the location where we want to rate data, then we use the index 145 00:12:10,530 --> 00:12:10,970 together. 146 00:12:10,980 --> 00:12:12,270 And that's a collateral value in the. 147 00:12:13,470 --> 00:12:19,450 After we ousted out of the loop, there is a cluster we want one of our most prepared. 148 00:12:19,480 --> 00:12:20,820 We started reading file. 149 00:12:23,730 --> 00:12:29,430 As you can see, the process is divided into two parts, so the first part is for the scenario where 150 00:12:29,430 --> 00:12:32,120 we don't read data on the cluster sides boundary. 151 00:12:32,580 --> 00:12:37,320 So if we find that took off, site is none zero where we will handle this case. 152 00:12:38,570 --> 00:12:45,350 So first thing we are going to do is we are going to compare to size with class size if offside, plus 153 00:12:45,350 --> 00:12:51,770 the size is less than classroom size, it means that all the data we want to rate is within this cluster. 154 00:12:52,190 --> 00:12:54,520 So we are the right size to size. 155 00:12:55,130 --> 00:13:00,890 Otherwise we have data in more than one clusters and waste as a resource to the remaining sector of 156 00:13:00,910 --> 00:13:02,440 data within this cluster. 157 00:13:03,350 --> 00:13:07,130 Then we locate the data address with function get cluster of site. 158 00:13:08,340 --> 00:13:15,660 Now we can copy the data using what function and copy to arguments as a buffer, so data address we've 159 00:13:15,660 --> 00:13:19,740 just retrieved, plus the offset to get correct location. 160 00:13:20,460 --> 00:13:24,620 The size of a data we will copy in the cluster is specified by resize. 161 00:13:25,800 --> 00:13:30,480 After recovering the data, we opted to buffer and get next cluster index. 162 00:13:31,500 --> 00:13:35,220 OK, at this point, we can raise the data on the cross rossides boundary. 163 00:13:36,410 --> 00:13:42,380 So we will use value to raise a foreign colossus until we read all the data already reached the end 164 00:13:42,380 --> 00:13:43,190 of the Klosters. 165 00:13:44,170 --> 00:13:50,980 In the world, we locate the data address and we compare the results with size, if they found that 166 00:13:50,980 --> 00:13:56,740 the right size plus the class size is larger than the size, it means that the remaining data we want 167 00:13:56,740 --> 00:13:58,540 to rate in this cluster. 168 00:13:59,450 --> 00:14:05,600 And a week later in the bar for an update, the right size, then we break the loop because we have 169 00:14:05,600 --> 00:14:07,460 copied all the data we want to reach. 170 00:14:08,710 --> 00:14:14,860 Otherwise, we still have data in other clusters, so we call it one cluster of data to the buffer on 171 00:14:14,860 --> 00:14:17,190 optical buffer zones or resize. 172 00:14:18,180 --> 00:14:22,920 As the envelope will retrieve the next cluster index to continue the reading process. 173 00:14:24,020 --> 00:14:30,530 After we rounded up the resources indicates the size of data we actually read returns the results to 174 00:14:30,530 --> 00:14:31,760 color and we are done. 175 00:14:32,400 --> 00:14:34,370 OK, we have finished so far modu. 176 00:14:35,430 --> 00:14:41,130 In order to open a file from you, the program we add to the system functions in the US, it's called 177 00:14:41,130 --> 00:14:42,860 module, as we did before. 178 00:14:43,470 --> 00:14:44,580 So we open. 179 00:14:45,540 --> 00:14:46,440 So it's called file. 180 00:14:51,840 --> 00:14:58,350 Here we at full function, open file, ready to file, got file size and cross file. 181 00:14:59,830 --> 00:15:01,570 Injustice, open file function. 182 00:15:02,500 --> 00:15:08,560 We first got process control on the part of the current proceeds to function open file in the name of 183 00:15:08,560 --> 00:15:09,790 the file we want to open. 184 00:15:11,210 --> 00:15:13,670 So following functions follows the same stip. 185 00:15:15,180 --> 00:15:21,990 We passed three arguments to separate five functio from user program, the first one is file descriptor. 186 00:15:22,230 --> 00:15:25,500 So the next one is Buffer, which we will release the data into. 187 00:15:26,100 --> 00:15:27,700 And the last one is a size. 188 00:15:28,870 --> 00:15:33,700 In the CROSSFIRE, so only arguments positive from use, the program is felt in scripture. 189 00:15:34,360 --> 00:15:36,670 After we close the file, we return zero. 190 00:15:37,920 --> 00:15:42,330 Got a full size also takes one parameter, which is Felty scripture. 191 00:15:43,800 --> 00:15:48,360 Since we have added four more entries into a system called. 192 00:15:50,140 --> 00:15:54,070 Which change the checks to make new system function available to the user. 193 00:15:55,850 --> 00:15:58,100 In the main function of the kernel product. 194 00:15:59,950 --> 00:16:02,170 We had felt out H. 195 00:16:03,880 --> 00:16:05,320 On his way, initialise. 196 00:16:07,790 --> 00:16:08,540 Photosystem. 197 00:16:10,290 --> 00:16:15,500 OK, at this point, so Colonel Barr is done now, we will adjust his call functions in the. 198 00:16:18,060 --> 00:16:19,950 So let's switch to the use of product. 199 00:16:21,260 --> 00:16:24,500 So first thing we will do is to create a number of five. 200 00:16:25,510 --> 00:16:26,890 So in the library voter. 201 00:16:29,820 --> 00:16:34,230 As you can see, this is a declaration of the functions where we are at interlibrary. 202 00:16:35,180 --> 00:16:36,310 So let's do it now. 203 00:16:39,070 --> 00:16:40,870 We are dysfunctions in the system. 204 00:16:41,110 --> 00:16:41,770 Somebody file. 205 00:16:43,420 --> 00:16:46,870 The first function we will implement is open file function. 206 00:16:50,970 --> 00:16:54,300 So we define the label open file. 207 00:16:56,460 --> 00:17:01,560 And it takes one parameter, its name, so we allocate it based on a stack. 208 00:17:04,130 --> 00:17:13,450 So index number of the states to function is six, so move six, then they call the address of the past 209 00:17:13,450 --> 00:17:14,510 name on a stack. 210 00:17:17,760 --> 00:17:18,930 The move ardai. 211 00:17:20,290 --> 00:17:22,810 One, which means way possible argument. 212 00:17:24,430 --> 00:17:27,910 So divisive arguments are set to register ARCI. 213 00:17:34,190 --> 00:17:35,430 Or inside. 214 00:17:37,430 --> 00:17:41,180 After it returns from Curnoe, we at Arizpe. 215 00:17:42,330 --> 00:17:45,150 Eight to restart the stack and return. 216 00:17:47,520 --> 00:17:49,290 So that's what it is reify. 217 00:17:53,000 --> 00:17:55,730 Which takes three parameters, so we allocate. 218 00:17:59,250 --> 00:18:00,630 Plentiful based on stock. 219 00:18:02,160 --> 00:18:04,600 So index number is seven. 220 00:18:05,520 --> 00:18:07,050 So we're moving seven. 221 00:18:09,230 --> 00:18:11,270 Then we call these Ackermans on the stack. 222 00:18:17,560 --> 00:18:18,400 Not to save three. 223 00:18:22,130 --> 00:18:24,440 Copies of of arguments to resign. 224 00:18:27,800 --> 00:18:29,200 At age 18. 225 00:18:31,180 --> 00:18:34,150 The start of tech by June Arizpe. 226 00:18:37,870 --> 00:18:38,410 Twenty four. 227 00:18:39,320 --> 00:18:40,450 And a return to the color. 228 00:18:42,790 --> 00:18:48,970 Close file on The Godfather side, functions are pretty much the same as open file function, so we 229 00:18:48,970 --> 00:18:52,000 copy the rainfall out of here. 230 00:18:54,320 --> 00:18:56,380 The only difference is inducts, No. 231 00:18:59,240 --> 00:19:01,990 So enticing function Gladwell Sites is EITE. 232 00:19:03,820 --> 00:19:12,700 So four year, eight index and function, close file is nine, Selimovic X nine. 233 00:19:13,480 --> 00:19:14,020 All right. 234 00:19:17,990 --> 00:19:19,790 Godbold, there's four functions. 235 00:19:23,900 --> 00:19:26,360 And we know that's great. 236 00:19:26,390 --> 00:19:27,320 So a file. 237 00:19:30,960 --> 00:19:35,220 We navigate to the library, Fauja Unassembled Osisko Modu. 238 00:19:38,460 --> 00:19:40,170 Then we add it to the laboratory. 239 00:19:42,870 --> 00:19:44,880 OK, so Laborie file is finished. 240 00:19:46,630 --> 00:19:51,520 Then we copy syllabary file on the laboratory, had a file in the user program. 241 00:19:52,490 --> 00:19:55,550 So you're the program in this example is you the one? 242 00:19:57,450 --> 00:19:58,950 So we copy them here. 243 00:20:04,420 --> 00:20:05,860 Until this project. 244 00:20:07,570 --> 00:20:09,850 We open the file to do the test. 245 00:20:11,360 --> 00:20:18,590 Not that here we need to develop because a white view function is not used in this section, maybe already 246 00:20:18,600 --> 00:20:20,510 a new way to function in the next way to. 247 00:20:21,440 --> 00:20:25,340 So here we just use the infinite loop to keep up the use of process running. 248 00:20:26,450 --> 00:20:27,410 So far, we're open. 249 00:20:27,500 --> 00:20:29,660 This example is called a test not being. 250 00:20:31,200 --> 00:20:37,610 So first we define Lavall, so handle on it, then it's a size. 251 00:20:41,970 --> 00:20:42,420 Buffer. 252 00:20:45,200 --> 00:20:47,510 But he used to start the day to. 253 00:20:49,800 --> 00:20:51,590 The baker opened fire. 254 00:20:53,640 --> 00:20:55,650 So we can function open file. 255 00:20:57,130 --> 00:21:02,380 So far, we want to open you this example is called Tast Dot Baim. 256 00:21:05,280 --> 00:21:08,790 After we open our file, we check a status. 257 00:21:10,900 --> 00:21:17,590 If the return is minus one, it means that the open file filed so perent. 258 00:21:20,010 --> 00:21:21,390 Open file filed. 259 00:21:25,410 --> 00:21:33,440 Otherwise, it's off our handle is why did one so we can do the operations on this file was file Hunter, 260 00:21:34,110 --> 00:21:36,750 for example, Weickert file size. 261 00:21:38,780 --> 00:21:40,790 On his own way past so far, Honjo. 262 00:21:43,960 --> 00:21:45,820 Next, where rates file. 263 00:21:50,110 --> 00:21:54,460 Here we also passed off our handle then to Buffer. 264 00:21:55,670 --> 00:22:01,880 Which we want to read out of our data into Adlen, the size of the data we want to rate. 265 00:22:02,420 --> 00:22:05,180 So here we want to rate all the data out of file. 266 00:22:06,350 --> 00:22:11,430 And next, we perent the data, which are straight from file. 267 00:22:15,210 --> 00:22:20,550 And an extra five percent rate and the data. 268 00:22:22,170 --> 00:22:22,910 Yemenites. 269 00:22:27,650 --> 00:22:30,650 Also on your line to make the result more readable. 270 00:22:31,710 --> 00:22:33,180 OK, that's pretty moderate. 271 00:22:35,750 --> 00:22:37,940 So I'll text file in this example is simple. 272 00:22:42,010 --> 00:22:42,970 Which acidifies. 273 00:22:43,600 --> 00:22:44,890 This is a test for. 274 00:22:45,990 --> 00:22:53,750 OK, now let's assemble the task file under the product, so a navigator to the test folder. 275 00:22:55,860 --> 00:22:57,360 And assembled a task for. 276 00:23:04,990 --> 00:23:06,400 Then we go to the other one. 277 00:23:07,920 --> 00:23:09,240 On the run to be scrapped. 278 00:23:12,500 --> 00:23:14,570 Now, let's monsta fatso's damage. 279 00:23:28,130 --> 00:23:32,060 The big through files, so it has to start being file. 280 00:23:38,090 --> 00:23:39,650 So you are being file. 281 00:23:50,690 --> 00:23:51,970 And so not a lot of people. 282 00:23:53,420 --> 00:23:58,370 Since we added a new module for our module, we added the script. 283 00:24:07,060 --> 00:24:09,790 And added to that in the script. 284 00:24:12,430 --> 00:24:14,140 OK, that's the kernel product. 285 00:24:19,480 --> 00:24:20,200 All right. 286 00:24:21,750 --> 00:24:26,460 We have been on the copyright to the stored image. 287 00:24:29,510 --> 00:24:33,230 All files covid into the image where this month's partition. 288 00:24:36,360 --> 00:24:37,800 OK, that's a round box. 289 00:24:44,300 --> 00:24:50,480 Or rather, you can see the message, this is a text file under way rate 20 bytes in total. 290 00:24:51,710 --> 00:24:56,120 All right, that's it for this lecture and just in the next hour to.