Assignment 2. Purpose. Points. Part I : Command Line parsing. Description. The purpose of this assignment is two-fold

Size: px
Start display at page:

Download "Assignment 2. Purpose. Points. Part I : Command Line parsing. Description. The purpose of this assignment is two-fold"

Transcription

1 CSPP 51086: Unix Systems Programming Instructors: Todd Nugent Assignment 2 command line parsing; cat Kenneth Harris Purpose The purpose of this assignment is two-fold 1. Work with strings and pointers. 2. Use the system calls open, close, read, write Points This assignment is 35 points: 0 Fix any bugs in lgsh from Assignment 1. I will give back any points deducted, provided you make all the fixes. I (10 points) Write a function makeargv which parses the command line. II (25 points) Implement my_cat, a version of Unix cat There are several extra credit points at the end. Part I : Command Line parsing Description A command line consists of arguments separated by spaces or tabs. Each argument is a string of characters containing no white space unless quotation marks are used, in which case everything between the pair of quotation marks is considered a single argument. The shell parses the command line into arguments and creates an argument array: an array of pointers to strings in which the 1

2 last pointer is a NULL pointer to mark the end of the array. Here is the argument array for the command line ls -l file argv[ ] [0] l s \0 [1] - l \0 [2] f i l e \0 [3] NULL Your task is to write a function which parses a command line. You will write a function makeargv which when given char **argv; // type of an array of strings int n; n = makeargv("ls -l file", &argv, " \t"); sets n to 3 (the number of arguments in the argument array), and creates an argument array to which argv points. The delimiters separating arguments are the space ( ) and the tab (\t). The third argument is used in Extra Credit Problem 1. You can ignore it for the basic module here. Specification for makeargv Purpose: makeargv parse string into words Prototype: int makeargv(const char *cmd, char ***argvp, const char * delimiter) 2

3 Definition: White space is defined to be either a space ( ) or a tab (\t). A word is a string which does not include any white space. An argument array is an array of words. The C type of an argument array is char **. Arguments: char *cmd : String to be parsed. makeargv will not modify this string. char ***argvp: Pointer to argv, an array of strings char *delimiter : String of delimiters, these are used to separate cmd into words. For the basic module in Problem I, ignore this argument, and use white space to separate cmd into words. Return: makeargv builds an array of words separated by white space. The end of the array is set to NULL. There are two effects on return: The return value is the number of arguments in the argument array, or -1 on error. The argument argvp points to the argument array which is produced. The memory for this array is allocated by makeargv. Errors: makeargv checks to determine that neither cmd nor argvp are NULL. It returns -1 if either are NULL. Implementation Points You will find the string library strtok and strtok_r in the library <string.h> valuable for the assignment. strtok is a very dangerous function to use because it use a static variable. It is preferable to use strtok_r. You will find an explanation of these functions in the manpages. You will need to handle white space at the beginning of the command line: ls -l file You will find the string library function strspn in the library <string.h> useful. I will provide a main routine which will test your function makeargv. The file is called test.c. Once you get makeargv working try Extra Credit Problem 1. It handles the third argument delimiters. It is a simple modification to your code for makeargv I have provided a directory, makeargv with everything you need for the assignment. You simple need to fill-in the body of your function makeargv in the file makeargv.c. You will need to submit a typescript. 3

4 Part II: Implementing cat Description Write you own version of cat called my_cat to conform ot the POSIX specification of cat. I have provided a link to the POSIX specification on the Assignment 2 webpage. You will not implement the option -u. You must implement all file I/O using the system calls open, close, read, write. You may use perror for printing error messages. Implementation Points I have provided a restart library, librestart.c which restarts I/O system calls if EINTR. I have also provided some useful operations which use these restart functions. You are welcome to use the library. Read the functions carefully, understand how they work. Execute the cat command with regular files and try to get my_cat to behave just like this. Execute cat with no arguments. Study how it behaves, and try to get my_cat to behave just like this. The way to generate an EOF on the terminal is <cntl>-d. Execute cat with one or more instances of - on the command line. Study how it behaves, and try to get my_cat to behave just like this. Create a directory for my\_cat following the Course Policy guidelines. Extra Credit (1) (5 points) Re-write makeargv to use the third argument, delimiter: a string of characters which will be used to separate words. Now, words are separated by some character in delimiter, and words consist of characters, none of which are among delimiter. For example, makeargv("ls -l file", argv, " \t") parses the string into the words "ls", "-l" and "file". And makeargv("ls -l wc", argv, " ") parses the string into the words "ls -l" and "wc" This is an easy modification to your your function makeargv. You will need to make a change to the DOC file I provided for makeargv. You will not need to modify test.c (2) (10points) Add arguments to showlog and savelog: showlog [n] : show the last n commands. If no argument given show all the commands. 4

5 savelog [n] : save the last n commands to the logfile. If no argument given then save all commands to logfile. showlog should now behave like the bash shell command history. You should handle error conditions like too many arguments: showlog Use makeargv to parse the command line so you correctly handle extra white space. 5

COP4342 UNIX Tools Assignment #3: A Simple Unix Shell. Instructor: Dr. Robert Van Engelen Teaching Assistant: Imran Chowdhury Spring 2018

COP4342 UNIX Tools Assignment #3: A Simple Unix Shell. Instructor: Dr. Robert Van Engelen Teaching Assistant: Imran Chowdhury Spring 2018 Total Points: 100 COP4342 UNIX Tools Assignment #3: A Simple Unix Shell Instructor: Dr. Robert Van Engelen Teaching Assistant: Imran Chowdhury Spring 2018 Description: The bash shell utility on UNIX and

More information

Project 2: Shell with History1

Project 2: Shell with History1 Project 2: Shell with History1 See course webpage for due date. Submit deliverables to CourSys: https://courses.cs.sfu.ca/ Late penalty is 10% per calendar day (each 0 to 24 hour period past due). Maximum

More information

Unix System Programming - Chapter 2, part a

Unix System Programming - Chapter 2, part a Unix System Programming - Chapter 2, part a Neal Nelson The Evergreen State College Mar 23, 2010 USP Chapter 2.1 to 2.6 Processes and Threads Program Storage and Linkage Library Function Calls Error Handling

More information

de facto standard C library Contains a bunch of header files and APIs to do various tasks

de facto standard C library Contains a bunch of header files and APIs to do various tasks CSE333 SECTION 6 GNU C Library de facto standard C library Contains a bunch of header files and APIs to do various tasks Don t need to memorize everything Do need to know what if there s an API that can

More information

1 The Var Shell (vsh)

1 The Var Shell (vsh) CS 470G Project 1 The Var Shell Due Date: February 7, 2011 In this assignment, you will write a shell that allows the user to interactively execute Unix programs. Your shell, called the Var Shell (vsh),

More information

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall Programming Assignment 1 (updated 9/16/2017)

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall Programming Assignment 1 (updated 9/16/2017) UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Fall 2017 Programming Assignment 1 (updated 9/16/2017) Introduction The purpose of this programming assignment is to give you

More information

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this programming assignment is to give you some experience

More information

CS 470 Operating Systems Spring 2013 Shell Project

CS 470 Operating Systems Spring 2013 Shell Project CS 470 Operating Systems Spring 2013 Shell Project 40 points Out: January 11, 2013 Due: January 25, 2012 (Friday) The purpose of this project is provide experience with process manipulation and signal

More information

Project 1: Implementing a Shell

Project 1: Implementing a Shell Assigned: August 28, 2015, 12:20am Due: September 21, 2015, 11:59:59pm Project 1: Implementing a Shell Purpose The purpose of this project is to familiarize you with the mechanics of process control through

More information

CSE 333 SECTION 3. POSIX I/O Functions

CSE 333 SECTION 3. POSIX I/O Functions CSE 333 SECTION 3 POSIX I/O Functions Administrivia Questions (?) HW1 Due Tonight Exercise 7 due Monday (out later today) POSIX Portable Operating System Interface Family of standards specified by the

More information

CS167 Programming Assignment 1: Shell

CS167 Programming Assignment 1: Shell CS167 Programming Assignment 1: Assignment Out: Sep. 5, 2007 Helpsession: Sep. 11, 2007 (8:00 pm, Motorola Room, CIT 165) Assignment Due: Sep. 17, 2007 (11:59 pm) 1 Introduction In this assignment you

More information

CSE 303 Midterm Exam

CSE 303 Midterm Exam CSE 303 Midterm Exam October 29, 2008 Name Sample Solution The exam is closed book, except that you may have a single page of hand written notes for reference. If you don t remember the details of how

More information

CS246 Spring14 Programming Paradigm Files, Pipes and Redirection

CS246 Spring14 Programming Paradigm Files, Pipes and Redirection 1 Files 1.1 File functions Opening Files : The function fopen opens a file and returns a FILE pointer. FILE *fopen( const char * filename, const char * mode ); The allowed modes for fopen are as follows

More information

Programming Assignment #1: A Simple Shell

Programming Assignment #1: A Simple Shell Programming Assignment #1: A Simple Shell Due: Check My Courses In this assignment you are required to create a C program that implements a shell interface that accepts user commands and executes each

More information

Lab 8: Ordered Search Results

Lab 8: Ordered Search Results Lab 8: Ordered Search Results Due: April 16th at 11:59pm Overview The goal of this lab is to extend your web page index implementation using a priority queue to order the search results. Additionally,

More information

Programming Assignment 3 (PA3) - Popular Names

Programming Assignment 3 (PA3) - Popular Names Programming Assignment 3 (PA3) - Popular Names Milestone Due: Final Due: Wednesday, May 16 @ 11:59 pm Wednesday, May 23 @ 11:59 pm Example Input Milestone Functions Unit Testing Extra Credit Detailed Overview

More information

CS 300 Leftovers. CS460 Pacific University 1

CS 300 Leftovers. CS460 Pacific University 1 CS 300 Leftovers Pacific University 1 argc/argv The C Programming Language section 5.10, page 114 int main(int argc, char** argv) argc - number of entries in argv argv - array of character pointers containing

More information

Final Exam 1 /12 2 /12 3 /10 4 /7 5 /4 6 /10 7 /8 8 /9 9 /8 10 /11 11 /8 12 /10 13 /9 14 /13 15 /10 16 /10 17 /12. Faculty of Computer Science

Final Exam 1 /12 2 /12 3 /10 4 /7 5 /4 6 /10 7 /8 8 /9 9 /8 10 /11 11 /8 12 /10 13 /9 14 /13 15 /10 16 /10 17 /12. Faculty of Computer Science Faculty of Computer Science Page 1 of 21 Final Exam Term: Fall 2018 (Sep4-Dec4) Student ID Information Last name: First name: Student ID #: CS.Dal.Ca userid: Course ID: CSCI 2132 Course Title: Instructor:

More information

Problem Set 1: Unix Commands 1

Problem Set 1: Unix Commands 1 Problem Set 1: Unix Commands 1 WARNING: IF YOU DO NOT FIND THIS PROBLEM SET TRIVIAL, I WOULD NOT RECOMMEND YOU TAKE THIS OFFERING OF 300 AS YOU DO NOT POSSESS THE REQUISITE BACKGROUND TO PASS THE COURSE.

More information

Topic 8: I/O. Reading: Chapter 7 in Kernighan & Ritchie more details in Appendix B (optional) even more details in GNU C Library manual (optional)

Topic 8: I/O. Reading: Chapter 7 in Kernighan & Ritchie more details in Appendix B (optional) even more details in GNU C Library manual (optional) Topic 8: I/O Reading: Chapter 7 in Kernighan & Ritchie more details in Appendix B (optional) even more details in GNU C Library manual (optional) No C language primitives for I/O; all done via function

More information

C strings. (Reek, Ch. 9) 1 CS 3090: Safety Critical Programming in C

C strings. (Reek, Ch. 9) 1 CS 3090: Safety Critical Programming in C C strings (Reek, Ch. 9) 1 Review of strings Sequence of zero or more characters, terminated by NUL (literally, the integer value 0) NUL terminates a string, but isn t part of it important for strlen()

More information

$Id: asg4-shell-tree.mm,v :36: $

$Id: asg4-shell-tree.mm,v :36: $ cmps012b 2002q2 Assignment 4 Shell and Tree Structure page 1 $Id: asg4-shell-tree.mm,v 323.32 2002-05-08 15:36:09-07 - - $ 1. Overview A data structure that is useful in many applications is the Tree.

More information

Week Overview. Simple filter commands: head, tail, cut, sort, tr, wc grep utility stdin, stdout, stderr Redirection and piping /dev/null file

Week Overview. Simple filter commands: head, tail, cut, sort, tr, wc grep utility stdin, stdout, stderr Redirection and piping /dev/null file ULI101 Week 05 Week Overview Simple filter commands: head, tail, cut, sort, tr, wc grep utility stdin, stdout, stderr Redirection and piping /dev/null file head and tail commands These commands display

More information

CS 220: Introduction to Parallel Computing. Input/Output. Lecture 7

CS 220: Introduction to Parallel Computing. Input/Output. Lecture 7 CS 220: Introduction to Parallel Computing Input/Output Lecture 7 Input/Output Most useful programs will provide some type of input or output Thus far, we ve prompted the user to enter their input directly

More information

Section 3: File I/O, JSON, Generics. Meghan Cowan

Section 3: File I/O, JSON, Generics. Meghan Cowan Section 3: File I/O, JSON, Generics Meghan Cowan POSIX Family of standards specified by the IEEE Maintains compatibility across variants of Unix-like OS Defines API and standards for basic I/O: file, terminal

More information

CSE374 Winter 2016, Midterm Examination February 8, 2016 Please do not turn the page until the bell rings.

CSE374 Winter 2016, Midterm Examination February 8, 2016 Please do not turn the page until the bell rings. CSE374 Winter 2016, Midterm Examination February 8, 2016 Please do not turn the page until the bell rings. Rules: The exam is closed-book, closed-note, closed-calculator, and closed-electronics. Please

More information

CSE 374 Midterm Exam 11/2/15 Sample Solution. Question 1. (10 points) Suppose the following files and subdirectories exist in a directory:

CSE 374 Midterm Exam 11/2/15 Sample Solution. Question 1. (10 points) Suppose the following files and subdirectories exist in a directory: Question 1. (10 points) Suppose the following files and subdirectories exist in a directory:.bashrc.emacs.bash_profile proj proj/data proj/data/dict.txt proj/data/smalldict.txt proj/notes proj/notes/todo.txt

More information

Midterm Examination # 2 Wednesday, March 18, Duration of examination: 75 minutes STUDENT NAME: STUDENT ID NUMBER:

Midterm Examination # 2 Wednesday, March 18, Duration of examination: 75 minutes STUDENT NAME: STUDENT ID NUMBER: Page 1 of 8 School of Computer Science 60-141-01 Introduction to Algorithms and Programming Winter 2015 Midterm Examination # 2 Wednesday, March 18, 2015 ANSWERS Duration of examination: 75 minutes STUDENT

More information

APT Session 4: C. Software Development Team Laurence Tratt. 1 / 14

APT Session 4: C. Software Development Team Laurence Tratt. 1 / 14 APT Session 4: C Laurence Tratt Software Development Team 2017-11-10 1 / 14 http://soft-dev.org/ What to expect from this session 1 C. 2 / 14 http://soft-dev.org/ Prerequisites 1 Install either GCC or

More information

CSC209H1S Day Midterm Solutions Winter 2010

CSC209H1S Day Midterm Solutions Winter 2010 Duration: Aids Allowed: 50 minutes 1-8.5x11 sheet Student Number: Last Name: SOLUTION First Name: Instructor: Karen Reid Do not turn this page until you have received the signal to start. (In the meantime,

More information

CSE 374 Midterm Exam Sample Solution 2/11/13. Question 1. (8 points) What does each of the following bash commands do?

CSE 374 Midterm Exam Sample Solution 2/11/13. Question 1. (8 points) What does each of the following bash commands do? Question 1. (8 points) What does each of the following bash commands do? (a) rm x Remove the file named x in the current directory. (b) rm *x Remove all files in the current directory whose names end with

More information

Final Project: LC-3 Simulator

Final Project: LC-3 Simulator Final Project: LC-3 Simulator Due Date: Friday 4/27/2018 11:59PM; No late handins This is the final project for this course. It is a simulator for LC-3 computer from the Patt and Patel book. As you work

More information

C mini reference. 5 Binary numbers 12

C mini reference. 5 Binary numbers 12 C mini reference Contents 1 Input/Output: stdio.h 2 1.1 int printf ( const char * format,... );......................... 2 1.2 int scanf ( const char * format,... );.......................... 2 1.3 char

More information

ECE551 Midterm Version 1

ECE551 Midterm Version 1 Name: ECE551 Midterm Version 1 NetID: There are 7 questions, with the point values as shown below. You have 75 minutes with a total of 75 points. Pace yourself accordingly. This exam must be individual

More information

Process Management! Goals of this Lecture!

Process Management! Goals of this Lecture! Process Management! 1 Goals of this Lecture! Help you learn about:" Creating new processes" Programmatically redirecting stdin, stdout, and stderr" (Appendix) communication between processes via pipes"

More information

Midterm Examination # 2 Wednesday, March 19, Duration of examination: 75 minutes STUDENT NAME: STUDENT ID NUMBER:

Midterm Examination # 2 Wednesday, March 19, Duration of examination: 75 minutes STUDENT NAME: STUDENT ID NUMBER: Page 1 of 7 School of Computer Science 60-141-01 Introduction to Algorithms and Programming Winter 2014 Midterm Examination # 2 Wednesday, March 19, 2014 ANSWERS Duration of examination: 75 minutes STUDENT

More information

CSE 303 Winter 2008 Midterm Key

CSE 303 Winter 2008 Midterm Key CSE 303 Winter 2008 Midterm Key 1. [2 points] Give a Unix command line that will list all (and only) files that end with.h in the current working directory. Full credit: ls *.h Extra credit: ls a *.h (although

More information

SE350: Operating Systems

SE350: Operating Systems SE350: Operating Systems Tutorial: The Programming Interface Main Points Creating and managing processes fork, exec, wait Example: implementing a shell Shell A shell is a job control system Allows programmer

More information

University of Colorado at Colorado Springs CS4500/ Fall 2018 Operating Systems Project 1 - System Calls and Processes

University of Colorado at Colorado Springs CS4500/ Fall 2018 Operating Systems Project 1 - System Calls and Processes University of Colorado at Colorado Springs CS4500/5500 - Fall 2018 Operating Systems Project 1 - System Calls and Processes Instructor: Yanyan Zhuang Total Points: 100 Out: 8/29/2018 Due: 11:59 pm, Friday,

More information

Last Time. on the website

Last Time. on the website Last Time on the website Lecture 6 Shell Scripting What is a shell? The user interface to the operating system Functionality: Execute other programs Manage files Manage processes Full programming language

More information

ESC101N: Fundamentals of Computing End-sem st semester

ESC101N: Fundamentals of Computing End-sem st semester ESC101N: Fundamentals of Computing End-sem 2010-11 1st semester Instructor: Arnab Bhattacharya 8:00-11:00am, 15th November, 2010 Instructions 1. Please write your name, roll number and section below. 2.

More information

CSE 333 SECTION 3. POSIX I/O Functions

CSE 333 SECTION 3. POSIX I/O Functions CSE 333 SECTION 3 POSIX I/O Functions Administrivia Questions (?) HW1 Due Tonight HW2 Due Thursday, July 19 th Midterm on Monday, July 23 th 10:50-11:50 in TBD (And regular exercises in between) POSIX

More information

CS 213, Fall 2002 Lab Assignment L5: Writing Your Own Unix Shell Assigned: Oct. 24, Due: Thu., Oct. 31, 11:59PM

CS 213, Fall 2002 Lab Assignment L5: Writing Your Own Unix Shell Assigned: Oct. 24, Due: Thu., Oct. 31, 11:59PM CS 213, Fall 2002 Lab Assignment L5: Writing Your Own Unix Shell Assigned: Oct. 24, Due: Thu., Oct. 31, 11:59PM Harry Bovik (bovik@cs.cmu.edu) is the lead person for this assignment. Introduction The purpose

More information

Homework 2 Answers. Due Date: Monday, April 29, 2002, at 11:59PM Points: 100

Homework 2 Answers. Due Date: Monday, April 29, 2002, at 11:59PM Points: 100 Homework 2 Answers Due Date: Monday, April 29, 2002, at 11:59PM Points: 100 UNIX System 1. (10 points) What program is running as process #1? Type ps ax and look for the process with a PID of 1. Then look

More information

Process Management 1

Process Management 1 Process Management 1 Goals of this Lecture Help you learn about: Creating new processes Programmatically redirecting stdin, stdout, and stderr (Appendix) communication between processes via pipes Why?

More information

CS 4410, Fall 2017 Project 1: My First Shell Assigned: August 27, 2017 Due: Monday, September 11:59PM

CS 4410, Fall 2017 Project 1: My First Shell Assigned: August 27, 2017 Due: Monday, September 11:59PM CS 4410, Fall 2017 Project 1: My First Shell Assigned: August 27, 2017 Due: Monday, September 11th @ 11:59PM Introduction The purpose of this assignment is to become more familiar with the concepts of

More information

Programming Assignment 4 (PA4) - myxd Milestone Due: Final Due:

Programming Assignment 4 (PA4) - myxd Milestone Due: Final Due: Programming Assignment 4 (PA4) - myxd Milestone Due: Final Due: Wednesday, March 7 @ 11:59 pm Wednesday, March 14 @ 11:59pm Assignment Overview The purpose of this programming assignment is further practice

More information

University of Toronto

University of Toronto University of Toronto Faculty of Applied Science and Engineering Midterm November, 2010 ECE244 --- Programming Fundamentals Examiners: Tarek Abdelrahman, Michael Gentili, and Michael Stumm Instructions:

More information

SU2017. LAB 1 (May 4/9) Introduction to C, Function Declaration vs. Definition, Basic I/O (scanf/printf, getchar/putchar)

SU2017. LAB 1 (May 4/9) Introduction to C, Function Declaration vs. Definition, Basic I/O (scanf/printf, getchar/putchar) SU2017. LAB 1 (May 4/9) Introduction to C, Function Declaration vs. Definition, Basic I/O (scanf/printf, getchar/putchar) 1 Problem A 1.1 Specification Write an ANSI-C program that reads input from the

More information

Sample Basic C Programs

Sample Basic C Programs Sample Basic C Programs Program #1: Fahrenheit and Celsius, Version 1 This prints a table with two columns, the left being Fahrenheit degrees, and the right the corrsponding Celsius temperatures. * print

More information

CS 610: Intermediate Programming: C/C++ Making Programs General An Introduction to Linked Lists

CS 610: Intermediate Programming: C/C++ Making Programs General An Introduction to Linked Lists ... 1/17 CS 610: Intermediate Programming: C/C++ Making Programs General An Introduction to Linked Lists Alice E. Fischer Spring 2016 ... 2/17 Outline Generic Functions Command Line Arguments Review for

More information

Processes. Operating System CS 217. Supports virtual machines. Provides services: User Process. User Process. OS Kernel. Hardware

Processes. Operating System CS 217. Supports virtual machines. Provides services: User Process. User Process. OS Kernel. Hardware es CS 217 Operating System Supports virtual machines Promises each process the illusion of having whole machine to itself Provides services: Protection Scheduling Memory management File systems Synchronization

More information

Homework 3 CS161 Computer Security, Fall 2008 Assigned 10/07/08 Due 10/13/08

Homework 3 CS161 Computer Security, Fall 2008 Assigned 10/07/08 Due 10/13/08 Homework 3 CS161 Computer Security, Fall 2008 Assigned 10/07/08 Due 10/13/08 For your solutions you should submit a hard copy; either hand written pages stapled together or a print out of a typeset document

More information

EE 109 Lab 8a Conversion Experience

EE 109 Lab 8a Conversion Experience EE 109 Lab 8a Conversion Experience 1 Introduction In this lab you will write a small program to convert a string of digits representing a number in some other base (between 2 and 10) to decimal. The user

More information

CS 3733 Operating Systems

CS 3733 Operating Systems Topics: Programs, command-line, storage class and Processes (SGG 3.1-3.2; USP 2, 3) CS 3733 Operating Systems Instructor: Dr. Turgay Korkmaz Department Computer Science The University of Texas at San Antonio

More information

CS 33. Shells and Files. CS33 Intro to Computer Systems XX 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

CS 33. Shells and Files. CS33 Intro to Computer Systems XX 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. CS 33 Shells and Files CS33 Intro to Computer Systems XX 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. Shells Command and scripting languages for Unix First shell: Thompson shell sh, developed

More information

Programming Assignment 1 (PA1) - Display Bowtie

Programming Assignment 1 (PA1) - Display Bowtie Programming Assignment 1 (PA1) - Display Bowtie Milestone Due: Final Due: Wednesday, April 18 @ 11:59 pm Wednesday, April 25 @ 11:59 pm Example Input Milestone Functions Unit Testing Extra Credit Detailed

More information

Review of Fundamentals

Review of Fundamentals Review of Fundamentals 1 The shell vi General shell review 2 http://teaching.idallen.com/cst8207/14f/notes/120_shell_basics.html The shell is a program that is executed for us automatically when we log

More information

CS 3305 Intro to Threads. Lecture 6

CS 3305 Intro to Threads. Lecture 6 CS 3305 Intro to Threads Lecture 6 Introduction Multiple applications run concurrently! This means that there are multiple processes running on a computer Introduction Applications often need to perform

More information

Assignment 5: MyString COP3330 Fall 2017

Assignment 5: MyString COP3330 Fall 2017 Assignment 5: MyString COP3330 Fall 2017 Due: Wednesday, November 15, 2017 at 11:59 PM Objective This assignment will provide experience in managing dynamic memory allocation inside a class as well as

More information

OPERATING SYSTEMS, ASSIGNMENT 4 FILE SYSTEM

OPERATING SYSTEMS, ASSIGNMENT 4 FILE SYSTEM OPERATING SYSTEMS, ASSIGNMENT 4 FILE SYSTEM SUBMISSION DATE: 15/06/2014 23:59 In this assignment you are requested to extend the file system of xv6. xv6 implements a Unix-like file system, and when running

More information

COSC6340: Database Systems Mini-DBMS Project evaluating SQL queries

COSC6340: Database Systems Mini-DBMS Project evaluating SQL queries COSC6340: Database Systems Mini-DBMS Project evaluating SQL queries Instructor: Carlos Ordonez 1 Introduction You will develop a small DBMS in C++ supporting SQL with nested SPJ queries. The small DBMS

More information

CS Operating system Fall Midterm I -- Oct 5, 2017 You have 75 min. Good Luck!

CS Operating system Fall Midterm I -- Oct 5, 2017 You have 75 min. Good Luck! Name / ID (please PRINT) Seq#: Seat #: CS 3733.001 -- Operating system Fall 2017 -- Midterm I -- Oct 5, 2017 You have 75 min. Good Luck! This is a closed book/note examination. But You can use C reference

More information

CDA3101 Project 1: MIPS Assembler Due 2/5. I. Purpose

CDA3101 Project 1: MIPS Assembler Due 2/5. I. Purpose CDA3101 Project 1: MIPS Assembler Due 2/5 I. Purpose The primary purpose of this project is to help cement the concepts of the MIPS instruction set and give you insight into how MIPS assembly programs

More information

Programming Assignment Multi-Threading and Debugging 2

Programming Assignment Multi-Threading and Debugging 2 Programming Assignment Multi-Threading and Debugging 2 Due Date: Friday, June 1 @ 11:59 pm PAMT2 Assignment Overview The purpose of this mini-assignment is to continue your introduction to parallel programming

More information

ECE551 Midterm Version 2

ECE551 Midterm Version 2 Name: ECE551 Midterm Version 2 NetID: There are 7 questions, with the point values as shown below. You have 75 minutes with a total of 75 points. Pace yourself accordingly. This exam must be individual

More information

Computer Programming Assignment V - Linked Lists

Computer Programming Assignment V - Linked Lists Computer Programming Assignment V - Linked Lists Version 2.00 Contents 1 Intro 2 1.1 Concept...................................... 2 2 Interface Definitions 2 2.1 Structures.....................................

More information

The UNIX File System. File Systems and Directories UNIX inodes Accessing directories Understanding links in directories.

The UNIX File System. File Systems and Directories UNIX inodes Accessing directories Understanding links in directories. The UNIX File System File Systems and Directories UNIX s Accessing directories Understanding links in directories Reading: R&R, Ch 5 Directories Large amounts of data: Partition and structure for easier

More information

Question 1: Complex numbers

Question 1: Complex numbers Fall Term 2016 SYSTEMS PROGRAMMING AND COMPUTER ARCHITECTURE Assignment 3: More C [1] Assigned on: 6th Oct 2016 Due by: 13th Oct 2016 This assignment contains more C programming. Skeletons and source files

More information

CS 4218 Software Testing and Debugging Ack: Tan Shin Hwei for project description formulation

CS 4218 Software Testing and Debugging Ack: Tan Shin Hwei for project description formulation CS 4218 Software Testing and Debugging Ack: Tan Shin Hwei for project description formulation The Project CS 4218 covers the concepts and practices of software testing and debugging. An important portion

More information

CSCi 4061: Intro to Operating Systems Spring 2017 Instructor: Jon Weissman Assignment 1: Simple Make Due: Feb. 15, 11:55 pm

CSCi 4061: Intro to Operating Systems Spring 2017 Instructor: Jon Weissman Assignment 1: Simple Make Due: Feb. 15, 11:55 pm CSCi 4061: Intro to Operating Systems Spring 2017 Instructor: Jon Weissman Assignment 1: Simple Make Due: Feb. 15, 11:55 pm 1 Purpose Make is a useful utility which builds executable programs or libraries

More information

CSCE C. Lab 10 - File I/O. Dr. Chris Bourke

CSCE C. Lab 10 - File I/O. Dr. Chris Bourke CSCE 155 - C Lab 10 - File I/O Dr. Chris Bourke Prior to Lab Before attending this lab: 1. Read and familiarize yourself with this handout. 2. Review the following free textbook resources: http://en.wikibooks.org/wiki/c_programming/file_io

More information

CSCI 2132 Final Exam Solutions

CSCI 2132 Final Exam Solutions Faculty of Computer Science 1 CSCI 2132 Final Exam Solutions Term: Fall 2018 (Sep4-Dec4) 1. (12 points) True-false questions. 2 points each. No justification necessary, but it may be helpful if the question

More information

Programs. Function main. C Refresher. CSCI 4061 Introduction to Operating Systems

Programs. Function main. C Refresher. CSCI 4061 Introduction to Operating Systems Programs CSCI 4061 Introduction to Operating Systems C Program Structure Libraries and header files Compiling and building programs Executing and debugging Instructor: Abhishek Chandra Assume familiarity

More information

Lab 8. Follow along with your TA as they demo GDB. Make sure you understand all of the commands, how and when to use them.

Lab 8. Follow along with your TA as they demo GDB. Make sure you understand all of the commands, how and when to use them. Lab 8 Each lab will begin with a recap of last lab and a brief demonstration by the TAs for the core concepts examined in this lab. As such, this document will not serve to tell you everything the TAs

More information

C: Arrays, and strings. Department of Computer Science College of Engineering Boise State University. September 11, /16

C: Arrays, and strings. Department of Computer Science College of Engineering Boise State University. September 11, /16 Department of Computer Science College of Engineering Boise State University September 11, 2017 1/16 1-dimensional Arrays Arrays can be statically declared in C, such as: int A [100]; The space for this

More information

CS 1044 Program 6 Summer I dimension ??????

CS 1044 Program 6 Summer I dimension ?????? Managing a simple array: Validating Array Indices Most interesting programs deal with considerable amounts of data, and must store much, or all, of that data on one time. The simplest effective means for

More information

Student Number: Instructor: Reid Section: L0101 (10:10-11:00am)

Student Number: Instructor: Reid Section: L0101 (10:10-11:00am) Midterm Test Duration 50 minutes Aids allowed: none Last Name: Student Number: First Name: Instructor: Reid Section: L0101 (10:10-11:00am) Do not turn this page until you have received the signal to start.

More information

Project 2 - Kernel Memory Allocation

Project 2 - Kernel Memory Allocation Project 2 - Kernel Memory Allocation EECS 343 - Fall 2014 Important Dates Out: Monday October 13, 2014 Due: Tuesday October 28, 2014 (11:59:59 PM CST) Project Overview The kernel generates and destroys

More information

ECE264 Fall 2013 Exam 3, November 20, 2013

ECE264 Fall 2013 Exam 3, November 20, 2013 ECE264 Fall 2013 Exam 3, November 20, 2013 In signing this statement, I hereby certify that the work on this exam is my own and that I have not copied the work of any other student while completing it.

More information

Warm-up sheet: Programming in C

Warm-up sheet: Programming in C Warm-up sheet: Programming in C Programming for Embedded Systems Uppsala University January 20, 2015 Introduction Here are some basic exercises in the programming language C. Hopefully you already have

More information

SYSTEMS PROGRAMMING AND COMPUTER ARCHITECTURE Assignment 4: Programming in C [1]

SYSTEMS PROGRAMMING AND COMPUTER ARCHITECTURE Assignment 4: Programming in C [1] Fall Term 2012 SYSTEMS PROGRAMMING AND COMPUTER ARCHITECTURE Assignment 4: Programming in C [1] Assigned on: 25th Oct 2012 Due by: 1st Nov 2012 Question 1: wc wc is a Unix utility that display the count

More information

5/8/2012. Exploring Utilities Chapter 5

5/8/2012. Exploring Utilities Chapter 5 Exploring Utilities Chapter 5 Examining the contents of files. Working with the cut and paste feature. Formatting output with the column utility. Searching for lines containing a target string with grep.

More information

CSCE 313 Introduction to Computer Systems

CSCE 313 Introduction to Computer Systems CSCE 313 Introduction to Computer Systems Instructor: Dr. Guofei Gu http://courses.cse.tamu.edu/guofei/csce313 The UNIX File System File Systems and Directories Accessing directories UNIX s Understanding

More information

[6 marks] All parts of this question assume the following C statement. Parts (b) through (e) assume a variable called ptrs.

[6 marks] All parts of this question assume the following C statement. Parts (b) through (e) assume a variable called ptrs. Question 1. All parts of this question assume the following C statement. Parts (b) through (e) assume a variable called ptrs. char data[256] = "Hop Pop We like to hop."; Part (a) Is the following statement

More information

CSE 490c Autumn 2004 Midterm 1

CSE 490c Autumn 2004 Midterm 1 CSE 490c Autumn 2004 Midterm 1 Please do not read beyond this cover page until told to start. Name: There are 10 questions. Questions are worth varying numbers of points. The number of points roughly reflects

More information

Common Misunderstandings from Exam 1 Material

Common Misunderstandings from Exam 1 Material Common Misunderstandings from Exam 1 Material Kyle Dewey Stack and Heap Allocation with Pointers char c = c ; char* p1 = malloc(sizeof(char)); char** p2 = &p1; Where is c allocated? Where is p1 itself

More information

CSC 209H1 S 2012 Midterm Test Duration 50 minutes Aids allowed: none. Student Number: # 1: / 6

CSC 209H1 S 2012 Midterm Test Duration 50 minutes Aids allowed: none. Student Number: # 1: / 6 CSC 209H1 S 2012 Midterm Test Duration 50 minutes Aids allowed: none Last Name: Student Number: First Name: Lecture Section: L0101 Instructor: Reid Do not turn this page until you have received the signal

More information

Week 2 Intro to the Shell with Fork, Exec, Wait. Sarah Diesburg Operating Systems CS 3430

Week 2 Intro to the Shell with Fork, Exec, Wait. Sarah Diesburg Operating Systems CS 3430 Week 2 Intro to the Shell with Fork, Exec, Wait Sarah Diesburg Operating Systems CS 3430 1 Why is the Shell Important? Shells provide us with a way to interact with the core system Executes programs on

More information

CPSC 341 OS & Networks. Processes. Dr. Yingwu Zhu

CPSC 341 OS & Networks. Processes. Dr. Yingwu Zhu CPSC 341 OS & Networks Processes Dr. Yingwu Zhu Process Concept Process a program in execution What is not a process? -- program on a disk A process is an active object, but a program is just a file It

More information

Homework 4 Answers. Due Date: Monday, May 27, 2002, at 11:59PM Points: 100. /* * macros */ #define SZBUFFER 1024 /* max length of input buffer */

Homework 4 Answers. Due Date: Monday, May 27, 2002, at 11:59PM Points: 100. /* * macros */ #define SZBUFFER 1024 /* max length of input buffer */ Homework 4 Answers Due Date: Monday, May 27, 2002, at 11:59PM Points: 100 UNIX System 1. (10 points) How do I delete the file i? Answer: Either rm./-i or rm -- -i will work. 2. (15 points) Please list

More information

School of Computer Science Algorithms & Programming. Fall Midterm Examination # 2 Wednesday, November 14, 2007.

School of Computer Science Algorithms & Programming. Fall Midterm Examination # 2 Wednesday, November 14, 2007. School of Computer Science 60-141-01 Algorithms & Programming Fall 2007 Midterm Examination # 2 Wednesday, November 14, 2007 Marking Scheme Duration of examination: 75 minutes 1. Answer all questions on

More information

SOFTWARE ARCHITECTURE 3. SHELL

SOFTWARE ARCHITECTURE 3. SHELL 1 SOFTWARE ARCHITECTURE 3. SHELL Tatsuya Hagino hagino@sfc.keio.ac.jp slides URL https://vu5.sfc.keio.ac.jp/sa/login.php 2 Software Layer Application Shell Library MIddleware Shell Operating System Hardware

More information

The Shell, System Calls, Processes, and Basic Inter-Process Communication

The Shell, System Calls, Processes, and Basic Inter-Process Communication The Shell, System Calls, Processes, and Basic Inter-Process Communication Michael Jantz Dr. Prasad Kulkarni 1 Shell Programs A shell program provides an interface to the services of the operating system.

More information

CSE 333 Midterm Exam 2/12/16. Name UW ID#

CSE 333 Midterm Exam 2/12/16. Name UW ID# Name UW ID# There are 6 questions worth a total of 100 points. Please budget your time so you get to all of the questions. Keep your answers brief and to the point. The exam is closed book, closed notes,

More information

THE UNIVERSITY OF WESTERN ONTARIO. COMPUTER SCIENCE 211a FINAL EXAMINATION 17 DECEMBER HOURS

THE UNIVERSITY OF WESTERN ONTARIO. COMPUTER SCIENCE 211a FINAL EXAMINATION 17 DECEMBER HOURS Computer Science 211a Final Examination 17 December 2002 Page 1 of 17 THE UNIVERSITY OF WESTERN ONTARIO LONDON CANADA COMPUTER SCIENCE 211a FINAL EXAMINATION 17 DECEMBER 2002 3 HOURS NAME: STUDENT NUMBER:

More information

February 15, 2017 CSC Assignment #3. Decomposition Outline Due: February 8, :59pm Due: February 15, :59pm

February 15, 2017 CSC Assignment #3. Decomposition Outline Due: February 8, :59pm Due: February 15, :59pm February 15, 2017 CSC 357 1 Assignment #3 Decomposition Outline Due: February 8, 2017 11:59pm Due: February 15, 2017 11:59pm Overview The primary purpose of this assignment is for you to gain additional

More information

Basic Shell Scripting Practice. HPC User Services LSU HPC & LON March 2018

Basic Shell Scripting Practice. HPC User Services LSU HPC & LON March 2018 Basic Shell Scripting Practice HPC User Services LSU HPC & LON sys-help@loni.org March 2018 Quotation Exercise 1. Print out your $LOGNAME 2. Print date 3. Print `who am i` 4. Print your current directory

More information

cc -o build/test_translate build/test_translate.o b... $

cc -o build/test_translate build/test_translate.o b... $ EECS 211 Homework 2 Winter 2019 Due: Partners: January 24, 2019 at 11:59 PM No; must be completed by yourself Purpose The goal of this assignment is to get you programming with strings, iteration, and

More information

Creating a Shell or Command Interperter Program CSCI411 Lab

Creating a Shell or Command Interperter Program CSCI411 Lab Creating a Shell or Command Interperter Program CSCI411 Lab Adapted from Linux Kernel Projects by Gary Nutt and Operating Systems by Tannenbaum Exercise Goal: You will learn how to write a LINUX shell

More information