CS 241 Section Week #5 2/23/12. 2 Topics This Section MP4 overview Function Pointers Pthreads File I/O.

Slides:



Advertisements
Similar presentations
File Management in C. A file is a collection of related data that a computers treats as a single unit. File is a collection of data stored permanently.
Advertisements

Threads CS241 Discussion Section Week 3 2/09/09 – 2/13/09.
January 13, Files – Chapter 2 Basic File Processing Operations.
Text File Input and Output. Overview Text File Buffered I/O Functions fopen Function Demo of File Write and Read.
Folk/Zoellick/Riccardi, File Structures 1 Objectives: To get familiar with Logical files vs. physical files File processing operations File processing.
CSCI 171 Presentation 12 Files. Working with files File Streams – sequence of data that is connected with a specific file –Text Stream – Made up of lines.
Ways to read data from disk to memory Tan Li. read, write read, write -- low level file access, it's an operation between two file discriptors. SYNOPSIS.
Today’s topic: –File operations –I/O redirection –Inter-process communication through pipes.
1 System Calls & Stdio. 2 Two processes open the same file Both keep writing to it What happens?
1 Advanced programming in UNIX 1 File I/O Hua LiSystems ProgrammingCS2690File I/O.
CS 311 – Lecture 10 Outline Review open() and close() Difference between fopen() and open() File management system calls – read() – write() – lseek() –
CSE 451 Section 4 Project 2 Design Considerations.
POSIX: Files Introduction to Operating Systems: Discussion 1 Read Solaris System Interface Guide: Ch. 5.1 Basic File I/O.
1 Homework Introduction to HW7 –Complexity similar to HW6 –Don’t wait until last minute to start on it File Access will be needed in HW8.
CP104 Introduction to Programming File I/O Lecture 33 __ 1 File Input/Output Text file and binary files File Input/output File input / output functions.
Operating Systems Recitation 1, March th, 2002.
22. FILE INPUT/OUTPUT. File Pointers and Streams Declarations of functions that perform file I/O appear in. Each function requires a file pointer as a.
CS252: Systems Programming Ninghui Li Based on Slides by Prof. Gustavo Rodriguez-Rivera Topic 8: Opening Files and Starting Processes.
File Handling In C By - AJAY SHARMA. We will learn about- FFile/Stream TText vs Binary Files FFILE Structure DDisk I/O function OOperations.
1 Lecture09: File I/O 5/6/2013 Slides modified from Yin Lou, Cornell CS2022: Introduction to C.
Introduction to Programming Using C Files. 2 Contents Files Working with files Sequential files Records.
UNIX Files File organization and a few primitives.
File IO and command line input CSE 2451 Rong Shi.
1 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee C Language Part 4.
File I/O, Project 1: List ADT Bryce Boe 2013/07/02 CS24, Summer 2013 C.
Week 12 - Wednesday.  What did we talk about last time?  File I/O  Binary trees  Lab 11.
1 Lecture09: File I/O 11/19/2012 Slides modified from Yin Lou, Cornell CS2022: Introduction to C.
Memory Layout, File I/O Bryce Boe 2013/06/27 CS24, Summer 2013 C.
Chapter 11: Data Files and File Processing Files and streams Creating a sequential access file Reading data from a sequential access file Using fgetc()
Basic I/O in C Computer Organization I 1 August 2009 © McQuain, Feng & Ribbens Stream Model of I/O header file: A stream provides a connection.
Chapter 7 Files By C. Shing ITEC Dept Radford University.
FILE IO in ‘C’ by Dr P.Padmanabham Professor (CSE)&Director Bharat Institute of Engineering &Technology Hyderabad Mobile
CSCI 330 UNIX and Network Programming Unit VII: I/O Management I.
January 7, 2003Serguei Mokhov, 1 File I/O System Calls Reference COMP 229, 444, 5201 Revision 1.2 Date: July 21, 2004.
Copyright ©: Nahrstedt, Angrave, Abdelzaher1 Tarek Abdelzaher Vikram Adve CS241 Systems Programming System Calls and I/O.
CS 241 Section Week #8 (10/29/09). Outline MP5 Overview Files & I/O UNIX File Systems inodes Directories Links.
File I/O open close lseek read and write – unbuffered I/O dup and dup2.
OS interface: file and I/O system calls File operations in C/C++? –fopen(), fread(), fwrite(), fclose(), fseek() in C f.open(…), f.close(…) in C++ I/O.
Files A collection of related data treated as a unit. Two types Text
CS 241 Section Week #5 9/22/11. 2 Topics This Section File I/O Advanced C.
Files. FILE * u In C, we use a FILE * data type to access files. u FILE * is defined in /usr/include/stdio.h u An example: #include int main() { FILE.
C Programming Day 2. 2 Copyright © 2005, Infosys Technologies Ltd ER/CORP/CRS/LA07/003 Version No. 1.0 Union –mechanism to create user defined data types.
Advanced Programming in the UNIX Environment Hop Lee.
File table: a list of opened files Each entry contains: – Index: file descriptors – Pointer to the file in memory – Access mode File descriptor is a positive.
Using System Calls (Unix) Have to tell compiler (if C/C++) where to find the headers, etc. – i.e., the “include” files May have to tell compiler where.
Real Numbers Device driver process within the operating system that interacts with I/O controller logical record 1 logical record 2 logical record 3.
Files in UNIX u UNIX deals with two different classes of files:  Special Files  Regular Files u Regular files are just ordinary data files on disk -
File I/O. I/O Flags Flags are passed to give some information about how the file is to be used. – Read only file – flag=0x0 – Write only file – flag=0x1.
Error handling I/O Man pages
Sorting Tutorial Using C On Linux.
ECE Application Programming
Chapter 4 File Processing
Lecture 11 File input/output
MP1 and MP2 - Threads CS241 Discussion Section Week 3
File I/O.
CGS 3460, Lecture 41 Apr 21, 2006 Hen-I Yang
Plan for the Day: I/O (beyond scanf and printf)
File Input/Output.
Lecture 13 Input/Output Files.
C Programming Lecture-15 File I/O
CSE 333 – Section 3 POSIX I/O Functions.
File I/O in C Lecture 7 Narrator: Lecture 7: File I/O in C.
Text and Binary File Processing
File Input and Output.
CSE 333 – Section 3 POSIX I/O Functions.
CSE 333 – Section 3 POSIX I/O Functions.
Module 12 Input and Output
Standard I/O Library Implementation
CSc 352 File I/O Saumya Debray Dept. of Computer Science
Presentation transcript:

CS 241 Section Week #5 2/23/12

2 Topics This Section MP4 overview Function Pointers Pthreads File I/O

3 MP4 Goal: Multi-threaded Merge Sort Three new programming concepts: Function Pointers Threads File I/O

4 MP4 Input: We provide you a program to generate input files of random unique integers Two parts to the MP: Sorting Merging

Part 1: [Multi-threaded sorting] Each input file is sorted by a different thread, and the output is saved to a file with the same name plus “.sorted”. Ignore empty lines. Numerical order. Use qsort : void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *)); Pointer to a function MP4

Part 2: [Multi-threaded merging] Each pair of files is merged until only one is left. A new round is started when all files in the previous one are merged, removing duplicates along the way. (DON’T USE qsort() on MERGE) file2.txtfile3.txtfile4.txtfile1.txtfile5.txt tmp1tMP3 tmp3 sorted.txt Round 1 Round 2 Round 3 Round 4 file5.txt MP4

File Input/Output

File I/O in C MP4 requires you to read and write text files in C. Two primary means of doing I/O in C: Through lightly-wrapped system calls open(), close(), read(), write(), etc Through C-language standards fopen(), fclose(), fread(), fwrite(), etc

File I/O in C Opening a file (Method #1): fopen(const char *filename, const char *mode); filename: path to file to open mode: what do you wish to do with the file? r : read only r+ : read and write (file must already exist) w : write (or overwrite) a file w+ : write (or overwrite) a file and allow for reading a : append to the end of the file (works for new files, too) a+ : appends to end of file and allows for reading anywhere in the file; however, writing will always occur as an append

File I/O in C Opening a file (Method #2): open(const char *filename, int flags, int mode); filename: path to file to open flags: what do you wish to do with the file? One of the following is required: O_RDONLY, O_WRONLY, O_RDWR And any number of these flags ( yo “add” these flags, simply binary-OR them together ) : O_APPEND: Similar to “a+” in fopen() O_CREAT: Allows creation of a file if it doesn’t exist O_SYNC: Allows for synchronous I/O (thread-safeness) mode: what permissions should the new file have? (S_IRUSR | S_IWUSR) creates a user read-write file.

Opening Files in C Return value of opening a file: Having called open() or fopen(), they will both create an entry in the OS’s file descriptor table. Specifics of a file descriptor table will be covered in-depth in the second-half of CS 241. Both open() and fopen() returns information about its file descriptor: open(): Returns an int. fopen(): Returns a (FILE *).

Reading Files in C Two ways to read files in C: fread(void *ptr, size_t size, size_t count, FILE *s); *ptr : Where should the data be read into? size : What is the size of each piece of data? count : How many pieces? *s : What (FILE *) do we read from? read(int fd, void *buf, size_t count); fd: What file do we read from? *buf: Where should the data be read into? count: How many bytes should be read?

Reading Files in C Reading more advancely… fscanf(FILE *stream, const char *format, …); Allows for reading at a semantic-level (eg: ints, doubles, etc) rather than a byte-level.The format string ( *format ) is of the same format as printf(). fgets(char *s, int size, FILE *stream); reads in at most size -1 characters from stream and stores them into the buffer pointed to by s. Reading stops after an EOF or a newline. If a newline is read, it is stored into the buffer. A '\0’ is stored after the last character in the buffer.

Writing Files in C Writing is a lot like reading… fwrite(void *ptr, size_t size, size_t count, FILE *s); Writing of bytes with ( FILE * ). write(int fd, void *buf, size_t count); Writing of bytes with a file descriptor ( int ) fprintf(FILE *stream, const char *format, …); Formatted writing to files (works like printf() )

Closing Files in C Always close your files! fclose(FILE *stream); close(int fd); write(), and especially fwrite()/fprintf(), may be buffered before being written out to disk. If a file is never closed after writing: the new data may never be written on the actual file the files may be corrupted

16 Coding Examples We have 5 code examples to work on in: ds/ds5/{1-5}.c To compile using threads, make sure to use: gcc 2.c -lpthread (On 5.c, you need to include -lm as well)