For personnal use only
|
|
- Maurice Williamson
- 5 years ago
- Views:
Transcription
1 Manipulating Binary Data Using The Korn Shell Finnbarr P. Murphy Most people are unaware that ksh93 (Korn Shell 93) can handle binary data. As the following examples will demonstrate, ksh93 is perfectly capable of generating binary data files, making an exact copy of a binary file and manipulating binary files. For my first example, I demonstrate how to create a 256-byte binary file containing all the binary values from 0x00 (NUL) to 0xFF.!/bin/ksh93 typeset -i8 value redirect 3>out.hex exit 1 for ((value = 0; value < 256; value++)) print -u 3 -f "\\${value8}" As you can see a perfect binary file was created containing the full ASCII table (NUL to Ox7F) plus the values from 0x89 to 0xFF (sometimes known as the Extended ASCII Table.) By the way, redirect is simply an alias for command exec. I assume you are familiar with manipulating file descriptors in ksh93 or other shells. If not, read the appropriate section of the ksh93 man page. Here is a hex dump, using xxd, of out.hex: $ xxd out.hex : a0b 0c0d 0e0f : a1b 1c1d 1e1f : a2b 2c2d 2e2f!"$%&'()*+,-./ : a3b 3c3d 3e3f :;< =>? : a4b 4c4d : a5b 5c5d 5e5f PQRSTUVWXYZ[\]^_ : a6b 6c6d 6e6f `abcdefghijklmno : a7b 7c7d 7e7f pqrstuvwxyz{ }~ : a8b 8c8d 8e8f : a9b 9c9d 9e9f a0: a0a1 a2a3 a4a5 a6a7 a8a9 aaab acad aeaf b0: b0b1 b2b3 b4b5 b6b7 b8b9 babb bcbd bebf c0: c0c1 c2c3 c4c5 c6c7 c8c9 cacb cccd cecf d0: d0d1 d2d3 d4d5 d6d7 d8d9 dadb dcdd dedf e0: e0e1 e2e3 e4e5 e6e7 e8e9 eaeb eced eeef f0: f0f1 f2f3 f4f5 f6f7 f8f9 fafb fcfd feff... $ My next example simply uses builtin ksh93 functionality to copy a binary file, image.jpg, to a binary file named image.cpy.!/bin/ksh Copyright Finnbarr P. Murphy. All rights reserved. 1/5
2 copy a binary file command exec 3<image.jpg exit 1 bytes=0 eof=$(3<((eof))) 3<((0)) :> image.cpy while (( $(3<((CUR))) < $eof )) print "At offset $(3<)" printf "%B" byte >> image.cpy (( bytes ++ )) print "$bytes copied" The key to understanding how this script works is understanding what typeset -b es. From the ksh93 manpage: -b The variable can hold any number of bytes of data. The data can be text or binary. The value is represented by the base64 encoding of the data. If -Z is also specified, the size in bytes of the data in the buffer will be determined by the size associated with the -Z. If the base64 string assigned results in more data, it will be truncated. Otherwise, it will be filled with bytes whose value is zero. The printf format %B can be used to output the actual data in this buffer instead of the base64 encoding of the data. The script works by reading the source file byte by byte, and storing the read byte in the variable called byte. Internally, this byte is stored as a base64-encoded string. This was David Korn s solution to the design issue of how to store a NUL ((character 0 in the portable character set corresponding to US ASCII) in a NUL terminated string. Remember, unlike some other programming languages such as Pascal, strings are NUL terminated in the C programming language which is what ksh93 and zsh are written in. The zsh shell uses a different mechanism but the end result is the same. It uses a guard byte, Meta, to guard the following byte. From..zsh/Src/zsh.h: /* Meta together with the character following Meta denotes the character * * which is the exclusive or of 32 and the character following Meta. * * This is used to represent characters which otherwise has special * * meaning for zsh. These are the characters for which the imeta() test * * is true: the null character, and the characters from Meta to Marker. */ define Meta ((char) 0x83) /* Note that the fourth character in DEFAULT_IFS is Meta * * followed by a space which denotes the null character. */ define DEFAULT_IFS " \t\n\203 " The interesting thing about the zsh special character guard mechanism is that zsh provides a mechanism to adjust the behavior of the two byte sequence Meta NUL using the options Copyright Finnbarr P. Murphy. All rights reserved. 2/5
3 POSIX_STRINGS (setopt posixstrings) or NO_POSIX_STRINGS (setopt noposixstrings.) When unset, the entire string including Meta bytes and NUL, is output to files where necessary, although owing to restrictions of the library interface a string is truncated at the NUL character in file names, environment variables, or in arguments to external programs. For my next example, we are going to reverse a binary file, i.e. image.gpj to image.jpg. Have a look at the following code:!/bin/ksh93 reverse a binary file eof=$(3<((eof))) printf "%B" byte > image.jpg 3<((CUR - 1)) while (( $(3<) > 0 )) printf "%B" byte >> image.jpg 3<((CUR - 2)) printf "%B" byte >> image.jpg Again, I use to declare byte to be a binary type which, by the way, can hold up to 64KB of either binary or text data. Again, I use the ksh93 I/O mechanism to open the input file, image.gpj using file descriptor 3. Again, I read byte by byte but this time backwards from the last byte of the file to the byte at offset 0. While decrement the file offset by 2 in the loop? Simple, read advances the file offset by 1, so the script has to compensate for the last read and also decrement the offset by 1 so that next read reads the previous byte in the file. Obviously this script is fairly inefficient as it reads and writes individual bytes. Use strace to understand how inefficient it is. Actually it turns out that a lot of the inefficiencies are actually due to the design of the sfio routines. In the following example, the previous script has been modified to read and write in chunks of 16 bytes where possible.!/bin/ksh reverse a binary file - chunks s eof=$(3<((eof))) read -r -u 3 -N 16 bytes printf "%B" bytes > image.jpg 3<((CUR - 16)) offset=0 while (( $(3<) > 0 )) print "At offset $(3<)" read -r -u 3 -N 16 bytes printf "%B" bytes >> image.jpg Copyright Finnbarr P. Murphy. All rights reserved. 3/5
4 offset=$(3<) if (( offset > 32 )) then 3<((CUR - 32)) else break fi 3<((0)) print "At final offset $offset" read -r -u 3 -N $((offset - 16)) bytes This script works as intended but I am pushing the limits of ksh93 file I/O using the CUR and EOF builtins. If instead of redirecting output to image.jpg using > and/or >>, I assigned file descriptor 4 to image.jpg, the script will never terminate. This is due to a implementation/design issue in ksh93 when using either or both of these two builtin variables, CUR or EOF, and more than one file descriptor simultaneously. Look at how CUR and EOF are set in../ast/src/cmd/ksh93/sh/io.c static Sfuble_t nget_cur_eof(namval_t *np, Namfun_t *fp) { struct Eof *ep = (struct Eof *)fp; Sfoff_t end, cur = lseek(ep->fd, (Sfoff_t)0, SEEK_CUR); if (*np->nvname == 'C') return (Sfuble_t)cur; if (cur < 0) return ((Sfuble_t)-1); end = lseek(ep->fd, (Sfoff_t)0, SEEK_END); lseek(ep->fd, (Sfoff_t)0, SEEK_CUR); return (Sfuble_t)end; } static const Namdisc_t EOF_disc = {sizeof(struct Eof), 0, 0, nget_cur_eof}; static Sfoff_t file_offset(shell_t *shp, int fd, char *fname) { Sfio_t *sp; char *cp; Sfoff_t off; struct Eof endf; Namval_t *mp = nv_open("eof", shp->var_tree, 0); Namval_t *pp = nv_open("cur", shp->var_tree, 0); sh_iovalidfd(shp, fd); sp = shp->sftable[fd]; memset(&endf, 0, sizeof(struct Eof)); endf.fd = fd; endf.hdr.disc = &EOF_disc; endf.hdr.nofree = 1; if (mp) nv_stack(mp, &endf.hdr); if (pp) nv_stack(pp, &endf.hdr); if (sp) sfsync(sp); off = sh_strnum(shp, fname, &cp, 0); if (mp) nv_stack(mp, NULL); if (pp) nv_stack(pp, NULL); return *cp? (Sfoff_t)-1 : off; } As you can see, the code for these two builtins (name-value pairs) is inextricably tangled together in both the file_offset function and the discipline function associated with each builtin.. Not the best of designs; the result being that the shell can easily get confused as to which file descriptor to use. A redesign is definitely warranted if ksh93 is intended to support seeking to more than one user-specified file offset in a shell script. The man page is silent on the issue. My final example shows how to work around this issue by limiting the use of EOF and avoiding the Copyright Finnbarr P. Murphy. All rights reserved. 4/5
5 use of CUR.!/bin/ksh reverse a binary file iof=$(3<((eof))) redirect 4> image.jpg exit 1 oof=0 3<(( --iof )) (( oof++ )) while (( iof > 0 )) print "At offset $iof $oof" 3<(( --iof)) (( oof++ )) redirect 4>&- echo 'cannot close FD 4' In the above script, the builtin variable EOF is used but once, i.e. to initially set the variable iof which is used to store the current offset of the input file. The CUR builtin variable, used in previous examples, is never used. The script then tracks the location of the input file offset using iof from that point on on until the script exits when iof decrements to 0. Well, I have run out of time and must finish this blog. The above examples should have adequately demonstrated to you that ksh93 is perfectly capable of handling NULs and binary data. The next tine somebody tells you that ksh93 cannot handle binary data internally, or that zsh is the only shell that can handle binary data, just point that person to this blog point. Enjoy! Copyright Finnbarr P. Murphy. All rights reserved. 5/5
For personnal use only
Korn Shell 93 Extended I/0 Finnbarr P Murphy (fpm@fpmurphycom) The ksh93 exec command is a special overloaded built-in command that can be used to manipulate le descriptors or to replace the current shell
More informationMini-Panel. Accy and Macro Controller
Mini-Panel Accy and Macro Controller Dimensions:.0" x.70" (8 x 69 mm) Revision.00 $9.9 Build the kind of control panels you ve always wanted without complicated wiring! Use one button to control multiple
More informationFor personnal use only
Korn Shell 93 Bit Manipulation Finnbarr P. Murphy (fpm@fpmurphy.com) When programmers think about bitwise manipulation, they usually think about using C or C++ to solve their problem since both programming
More informationFor personnal use only
Korn Shell 93 Hash Builtins Finnbarr P. Murphy (fpm@fpmurphy.com) Here is a simple Korn shell plugin which enables you to use the hash functions built o the AT&T Advanced Software Technologies (AST) (libsum)
More information2009 S2 COMP File Operations
2009 S2 COMP1921 9. File Operations Oliver Diessel odiessel@cse.unsw.edu.au Last updated: 16:00 22 Sep 2009 9. File Operations Topics to be covered: Streams Text file operations Binary file operations
More informationFor personnal use only
Korn Shell 93 Message Localization Finnbarr P. Murphy (fpm@fpmurphy.com) The current version of ksh93 (93t+ 2009-05-01) supports localization of internal error messages and getopts messages but localization
More informationPROGRAMMAZIONE I A.A. 2017/2018
PROGRAMMAZIONE I A.A. 2017/2018 INPUT/OUTPUT INPUT AND OUTPUT Programs must be able to write data to files or to physical output devices such as displays or printers, and to read in data from files or
More informationSOFTWARE 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 informationLinux shell scripting Getting started *
Linux shell scripting Getting started * David Morgan *based on chapter by the same name in Classic Shell Scripting by Robbins and Beebe What s s a script? text file containing commands executed as a unit
More informationCOMP 4/6262: Programming UNIX
COMP 4/6262: Programming UNIX Lecture 12 shells, shell programming: passing arguments, if, debug March 13, 2006 Outline shells shell programming passing arguments (KW Ch.7) exit status if (KW Ch.8) test
More informationFor personnal use only
Using Types To Create Object Orientated Korn Shell 93 Scripts Finnbarr P. Murphy (fpm@fpmurphy.com Most experienced software developers are familiar with the fact the Python, Perl, Ruby, JavaScript and
More informationCIS-331 Spring 2016 Exam 1 Name: Total of 109 Points Version 1
Version 1 Instructions Write your name on the exam paper. Write your name and version number on the top of the yellow paper. Answer Question 1 on the exam paper. Answer Questions 2-4 on the yellow paper.
More informationFile Descriptors and Piping
File Descriptors and Piping CSC209: Software Tools and Systems Programming Furkan Alaca & Paul Vrbik University of Toronto Mississauga https://mcs.utm.utoronto.ca/~209/ Week 8 Today s topics File Descriptors
More information3/7/2018. Sometimes, Knowing Which Thing is Enough. ECE 220: Computer Systems & Programming. Often Want to Group Data Together Conceptually
University of Illinois at Urbana-Champaign Dept. of Electrical and Computer Engineering ECE 220: Computer Systems & Programming Structured Data in C Sometimes, Knowing Which Thing is Enough In MP6, we
More informationSystems Programming. 08. Standard I/O Library. Alexander Holupirek
Systems Programming 08. Standard I/O Library Alexander Holupirek Database and Information Systems Group Department of Computer & Information Science University of Konstanz Summer Term 2008 Last lecture:
More informationFile and Console I/O. CS449 Spring 2016
File and Console I/O CS449 Spring 2016 What is a Unix(or Linux) File? File: a resource for storing information [sic] based on some kind of durable storage (Wikipedia) Wider sense: In Unix, everything is
More informationCIS-331 Exam 2 Fall 2014 Total of 105 Points. Version 1
Version 1 1. (20 Points) Given the class A network address 119.0.0.0 will be divided into a maximum of 15,900 subnets. a. (5 Points) How many bits will be necessary to address the 15,900 subnets? b. (5
More informationLinux Shell Scripting. Linux System Administration COMP2018 Summer 2017
Linux Shell Scripting Linux System Administration COMP2018 Summer 2017 What is Scripting? Commands can be given to a computer by entering them into a command interpreter program, commonly called a shell
More informationIntroduction Variables Helper commands Control Flow Constructs Basic Plumbing. Bash Scripting. Alessandro Barenghi
Bash Scripting Alessandro Barenghi Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano alessandro.barenghi - at - polimi.it April 28, 2015 Introduction The bash command shell
More informationGoals of this Lecture
I/O Management 1 Goals of this Lecture Help you to learn about: The Unix stream concept Standard C I/O functions Unix system-level functions for I/O How the standard C I/O functions use the Unix system-level
More informationI/O Management! Goals of this Lecture!
I/O Management! 1 Goals of this Lecture! Help you to learn about:" The Unix stream concept" Standard C I/O functions" Unix system-level functions for I/O" How the standard C I/O functions use the Unix
More informationI/O Management! Goals of this Lecture!
I/O Management! 1 Goals of this Lecture! Help you to learn about:" The Unix stream concept" Standard C I/O functions" Unix system-level functions for I/O" How the standard C I/O functions use the Unix
More informationSystems/DBG Debugger Version 2.20
Systems/DBG Debugger Version 2.20 Copyright c 2018, Dignus, LLC Systems/DBG Debugger Version 2.20 i Copyright c 2018 Dignus LLC, 8378 Six Forks Road Suite 203, Raleigh NC, 27615. World rights reserved.
More informationGNU Bash. an introduction to advanced usage. James Pannacciulli Systems Engineer.
Concise! GNU Bash http://talk.jpnc.info/bash_lfnw_2017.pdf an introduction to advanced usage James Pannacciulli Systems Engineer Notes about the presentation: This talk assumes you are familiar with basic
More informationCSE 220: Systems Programming
CSE 220: Systems Programming Pointers and Data Representation Ethan Blanton Department of Computer Science and Engineering University at Buffalo More on void Pointers Void pointers are powerful for raw
More informationCS 25200: Systems Programming. Lecture 10: Shell Scripting in Bash
CS 25200: Systems Programming Lecture 10: Shell Scripting in Bash Dr. Jef Turkstra 2018 Dr. Jeffrey A. Turkstra 1 Lecture 10 Getting started with Bash Data types Reading and writing Control loops Decision
More informationCIS-331 Exam 2 Fall 2015 Total of 105 Points Version 1
Version 1 1. (20 Points) Given the class A network address 117.0.0.0 will be divided into multiple subnets. a. (5 Points) How many bits will be necessary to address 4,000 subnets? b. (5 Points) What is
More informationscanf erroneous input Computer Programming: Skills & Concepts (CP) Characters Last lecture scanf error-checking our input This lecture
scanf erroneous input Computer Programming: Skills & Concepts (CP) Characters Ajitha Rajan What if the user types a word, when an integer is required? As already noted in tutorials: Apart from the action
More informationThe Unix Shell & Shell Scripts
The Unix Shell & Shell Scripts You should do steps 1 to 7 before going to the lab. Use the Linux system you installed in the previous lab. In the lab do step 8, the TA may give you additional exercises
More informationLecture 3. Introduction to Unix Systems Programming: Unix File I/O System Calls
Lecture 3 Introduction to Unix Systems Programming: Unix File I/O System Calls 1 Unix File I/O 2 Unix System Calls System calls are low level functions the operating system makes available to applications
More informationCIS-331 Final Exam Spring 2015 Total of 115 Points. Version 1
Version 1 1. (25 Points) Given that a frame is formatted as follows: And given that a datagram is formatted as follows: And given that a TCP segment is formatted as follows: Assuming no options are present
More informationLecture 9: File Processing. Quazi Rahman
60-141 Lecture 9: File Processing Quazi Rahman 1 Outlines Files Data Hierarchy File Operations Types of File Accessing Files 2 FILES Storage of data in variables, arrays or in any other data structures,
More informationShell Programming (ch 10)
Vim Commands vim filename Shell Programming (ch 10) IT244 - Introduction to Linux / Unix Instructor: Bo Sheng Add contents: i/a Back to command mode: ESC Save the file: :w Delete: x Quit: :q 1 2 The order
More informationI/O OPERATIONS. UNIX Programming 2014 Fall by Euiseong Seo
I/O OPERATIONS UNIX Programming 2014 Fall by Euiseong Seo Files Files that contain a stream of bytes are called regular files Regular files can be any of followings ASCII text Data Executable code Shell
More informationCP2 Revision. theme: file access and unix programs
CP2 Revision theme: file access and unix programs file access in C basic access functionality: FILE *fopen(const char *filename, const char *mode); This function returns a pointer to a file stream (or
More informationCS 1550 Project 3: File Systems Directories Due: Sunday, July 22, 2012, 11:59pm Completed Due: Sunday, July 29, 2012, 11:59pm
CS 1550 Project 3: File Systems Directories Due: Sunday, July 22, 2012, 11:59pm Completed Due: Sunday, July 29, 2012, 11:59pm Description FUSE (http://fuse.sourceforge.net/) is a Linux kernel extension
More informationCMPE-013/L. File I/O. File Processing. Gabriel Hugh Elkaim Winter File Processing. Files and Streams. Outline.
CMPE-013/L Outline File Processing File I/O Gabriel Hugh Elkaim Winter 2014 Files and Streams Open and Close Files Read and Write Sequential Files Read and Write Random Access Files Read and Write Random
More informationProject 3: Base64 Content-Transfer-Encoding
CMSC 313, Computer Organization & Assembly Language Programming Section 0101 Fall 2001 Project 3: Base64 Content-Transfer-Encoding Due: Tuesday November 13, 2001 Objective The objectives of this programming
More informationCIS-331 Exam 2 Spring 2016 Total of 110 Points Version 1
Version 1 1. (20 Points) Given the class A network address 121.0.0.0 will be divided into multiple subnets. a. (5 Points) How many bits will be necessary to address 8,100 subnets? b. (5 Points) What is
More informationCIS-331 Final Exam Spring 2018 Total of 120 Points. Version 1
Version 1 Instructions 1. Write your name and version number on the top of the yellow paper and the routing tables sheet. 2. Answer Question 2 on the routing tables sheet. 3. Answer Questions 1, 3, 4,
More informationThe cache is 4-way set associative, with 4-byte blocks, and 16 total lines
Sample Problem 1 Assume the following memory setup: Virtual addresses are 20 bits wide Physical addresses are 15 bits wide The page size if 1KB (2 10 bytes) The TLB is 2-way set associative, with 8 total
More informationI/O OPERATIONS. UNIX Programming 2014 Fall by Euiseong Seo
I/O OPERATIONS UNIX Programming 2014 Fall by Euiseong Seo Files Files that contain a stream of bytes are called regular files Regular files can be any of followings ASCII text Data Executable code Shell
More informationShells and Shell Programming
Shells and Shell Programming Shells A shell is a command line interpreter that is the interface between the user and the OS. The shell: analyzes each command determines what actions are to be performed
More informationInput / Output Functions
CSE 2421: Systems I Low-Level Programming and Computer Organization Input / Output Functions Presentation G Read/Study: Reek Chapter 15 Gojko Babić 10-03-2018 Input and Output Functions The stdio.h contain
More informationTypes, Variables, and Constants
, Variables, and Constants What is a Type The space in which a value is defined Space All possible allowed values All defined operations Integer Space whole numbers +, -, x No divide 2 tj Why Types No
More informationsottotitolo A.A. 2016/17 Federico Reghenzani, Alessandro Barenghi
Titolo presentazione Piattaforme Software per la Rete sottotitolo BASH Scripting Milano, XX mese 20XX A.A. 2016/17, Alessandro Barenghi Outline 1) Introduction to BASH 2) Helper commands 3) Control Flow
More informationHere is a C function that will print a selected block of bytes from such a memory block, using an array-based view of the necessary logic:
Pointer Manipulations Pointer Casts and Data Accesses Viewing Memory The contents of a block of memory may be viewed as a collection of hex nybbles indicating the contents of the byte in the memory region;
More informationShell script/program. Basic shell scripting. Script execution. Resources. Simple example script. Quoting
Shell script/program Basic shell scripting CS 2204 Class meeting 5 Created by Doug Bowman, 2001 Modified by Mir Farooq Ali, 2002 A series of shell commands placed in an ASCII text file Commands include
More informationCSI 402 Lecture 2 Working with Files (Text and Binary)
CSI 402 Lecture 2 Working with Files (Text and Binary) 1 / 30 AQuickReviewofStandardI/O Recall that #include allows use of printf and scanf functions Example: int i; scanf("%d", &i); printf("value
More informationGNU Bash. An Introduction to Advanced Usage. James Pannacciulli Systems (mt) Media Temple
GNU Bash An Introduction to Advanced Usage James Pannacciulli Systems Engineer @ (mt) Media Temple http://talk.jpnc.info/bash_oscon_2014.pdf Notes about the presentation: This talk assumes you are familiar
More informationCIS-331 Fall 2014 Exam 1 Name: Total of 109 Points Version 1
Version 1 1. (24 Points) Show the routing tables for routers A, B, C, and D. Make sure you account for traffic to the Internet. Router A Router B Router C Router D Network Next Hop Next Hop Next Hop Next
More information4. Specifications and Additional Information
4. Specifications and Additional Information AGX52004-1.0 8B/10B Code This section provides information about the data and control codes for Arria GX devices. Code Notation The 8B/10B data and control
More informationCSE 410: Systems Programming
CSE 410: Systems Programming Input and Output Ethan Blanton Department of Computer Science and Engineering University at Buffalo I/O Kernel Services We have seen some text I/O using the C Standard Library.
More informationCS Programming In C
CS 24000 - Programming In C Week Two: Basic C Program Organization and Data Types Zhiyuan Li Department of Computer Science Purdue University, USA 2 int main() { } return 0; The Simplest C Program C programs
More informationProcess 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" Unix system-level functions for I/O" The Unix stream
More informationECE220: Computer Systems and Programming Spring 2018 Honors Section due: Saturday 14 April at 11:59:59 p.m. Code Generation for an LC-3 Compiler
ECE220: Computer Systems and Programming Spring 2018 Honors Section Machine Problem 11 due: Saturday 14 April at 11:59:59 p.m. Code Generation for an LC-3 Compiler This assignment requires you to use recursion
More informationMore Scripting and Regular Expressions. Todd Kelley CST8207 Todd Kelley 1
More Scripting and Regular Expressions Todd Kelley kelleyt@algonquincollege.com CST8207 Todd Kelley 1 Regular Expression Summary Regular Expression Examples Shell Scripting 2 Do not confuse filename globbing
More informationImplementation of a simple shell, xssh
Implementation of a simple shell, xssh What is a shell? A process that does command line interpretation Reads a command from standard input (stdin) Executes command corresponding to input line In the simple
More informationProgramming in C - Part 2
Programming in C - Part 2 CPSC 457 Mohammad Reza Zakerinasab May 11, 2016 These slides are forked from slides created by Mike Clark Where to find these slides and related source code? http://goo.gl/k1qixb
More informationAdvanced Batch Files. Ch 11 1
Advanced Batch Files Ch 11 1 Overview Quick review of batch file commands learned in earlier chapters. Ch 11 2 Overview Advanced features of these commands will be explained and used. Ch 11 3 Overview
More informationMode Meaning r Opens the file for reading. If the file doesn't exist, fopen() returns NULL.
Files Files enable permanent storage of information C performs all input and output, including disk files, by means of streams Stream oriented data files are divided into two categories Formatted data
More informationLecture 02 C FUNDAMENTALS
Lecture 02 C FUNDAMENTALS 1 Keywords C Fundamentals auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void
More informationFiles and Streams Opening and Closing a File Reading/Writing Text Reading/Writing Raw Data Random Access Files. C File Processing CS 2060
CS 2060 Files and Streams Files are used for long-term storage of data (on a hard drive rather than in memory). Files and Streams Files are used for long-term storage of data (on a hard drive rather than
More informationIntroduction to Supercomputing
Introduction to Supercomputing TMA4280 Introduction to UNIX environment and tools 0.1 Getting started with the environment and the bash shell interpreter Desktop computers are usually operated from a graphical
More informationBits, Bytes, and Integers Part 2
Bits, Bytes, and Integers Part 2 15-213: Introduction to Computer Systems 3 rd Lecture, Jan. 23, 2018 Instructors: Franz Franchetti, Seth Copen Goldstein, Brian Railing 1 First Assignment: Data Lab Due:
More informationCSE506: Operating Systems CSE 506: Operating Systems
CSE 506: Operating Systems What Software Expects of the OS What Software Expects of the OS Memory System Calls System Services Launching Program Executables Shell Memory Abstraction CSE506: Operating Systems
More informationShells and Shell Programming
Shells and Shell Programming 1 Shells A shell is a command line interpreter that is the interface between the user and the OS. The shell: analyzes each command determines what actions are to be performed
More informationCIS-331 Fall 2013 Exam 1 Name: Total of 120 Points Version 1
Version 1 1. (24 Points) Show the routing tables for routers A, B, C, and D. Make sure you account for traffic to the Internet. NOTE: Router E should only be used for Internet traffic. Router A Router
More informationECE264 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 informationReading and manipulating files
Reading and manipulating files Goals By the end of this lesson you will be able to Read files without using text editors Access specific parts of files Count the number of words and lines in a file Sort
More informationCSci 4061 Introduction to Operating Systems. Input/Output: High-level
CSci 4061 Introduction to Operating Systems Input/Output: High-level I/O Topics First, cover high-level I/O Next, talk about low-level device I/O I/O not part of the C language! High-level I/O Hide device
More informationInput/Output and the Operating Systems
Input/Output and the Operating Systems Fall 2015 Jinkyu Jeong (jinkyu@skku.edu) 1 I/O Functions Formatted I/O printf( ) and scanf( ) fprintf( ) and fscanf( ) sprintf( ) and sscanf( ) int printf(const char*
More informationProject 4: File System Implementation 1
Project 4: File System Implementation 1 Submit a gzipped tarball of your code to CourseWeb. Due: Friday, December 7, 2018 @11:59pm Late: Sunday, December 9, 2018 @11:59pm with 10% reduction per late day
More informationPreview. System Call. System Call. System Call. System Call. Library Functions 9/20/2018. System Call
Preview File Descriptors for a Process for Managing Files write read open close lseek A system call is a request for the operating system to do something on behalf of the user's program. The system calls
More informationC-Refresher: Session 10 Disk IO
C-Refresher: Session 10 Disk IO Arif Butt Summer 2017 I am Thankful to my student Muhammad Zubair bcsf14m029@pucit.edu.pk for preparation of these slides in accordance with my video lectures at http://www.arifbutt.me/category/c-behind-the-curtain/
More informationCS246 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 informationImplementation of a simple shell, xssh
Implementation of a simple shell, xssh What is a shell? A process that does command line interpretation Reads a command from standard input (stdin) Executes command corresponding to input line In simple
More informationDarshan Institute of Engineering & Technology for Diploma Studies Unit 6
1. What is File management? In real life, we want to store data permanently so that later on we can retrieve it and reuse it. A file is a collection of bytes stored on a secondary storage device like hard
More information8. Characters, Strings and Files
REGZ9280: Global Education Short Course - Engineering 8. Characters, Strings and Files Reading: Moffat, Chapter 7, 11 REGZ9280 14s2 8. Characters and Arrays 1 ASCII The ASCII table gives a correspondence
More informationFile I/O. Arash Rafiey. November 7, 2017
November 7, 2017 Files File is a place on disk where a group of related data is stored. Files File is a place on disk where a group of related data is stored. C provides various functions to handle files
More informationBinary Representation. Decimal Representation. Hexadecimal Representation. Binary to Hexadecimal
Decimal Representation Binary Representation Can interpret decimal number 4705 as: 4 10 3 + 7 10 2 + 0 10 1 + 5 10 0 The base or radix is 10 Digits 0 9 Place values: 1000 100 10 1 10 3 10 2 10 1 10 0 Write
More informationDecimal Representation
Decimal Representation Can interpret decimal number 4705 as: 4 10 3 + 7 10 2 + 0 10 1 + 5 10 0 The base or radix is 10 Digits 0 9 Place values: 1000 100 10 1 10 3 10 2 10 1 10 0 Write number as 4705 10
More informationCPSC213/2014W1 Midterm EXTRA Practice
CPSC213/2014W1 Midterm EXTRA Practice DEC/HEX/BIN NUMERACY 1. Convert into decimal: 1a. 0x33 1b. 0x57 1c. 0xaf 1d. 0x7a 1e. 0x1234 1f. 0x69bd 1g. 0x1a64 1h. 0xdead 2. Convert into hex numbers of the specified
More information25.2 Opening and Closing a File
Lecture 32 p.1 Faculty of Computer Science, Dalhousie University CSCI 2132 Software Development Lecture 32: Dynamically Allocated Arrays 26-Nov-2018 Location: Chemistry 125 Time: 12:35 13:25 Instructor:
More informationSlide Set 8. for ENCM 339 Fall 2017 Section 01. Steve Norman, PhD, PEng
Slide Set 8 for ENCM 339 Fall 2017 Section 01 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary October 2017 ENCM 339 Fall 2017 Section 01 Slide
More informationUNIT IV-2. The I/O library functions can be classified into two broad categories:
UNIT IV-2 6.0 INTRODUCTION Reading, processing and writing of data are the three essential functions of a computer program. Most programs take some data as input and display the processed data, often known
More informationHere's how you declare a function that returns a pointer to a character:
23 of 40 3/28/2013 10:35 PM Violets are blue Roses are red C has been around, But it is new to you! ANALYSIS: Lines 32 and 33 in main() prompt the user for the desired sort order. The value entered is
More informationAlgorithms, Data Structures, and Problem Solving
Algorithms, Data Structures, and Problem Solving Masoumeh Taromirad Hamlstad University DT4002, Fall 2016 Course Objectives A course on algorithms, data structures, and problem solving Learn about algorithm
More informationC: How to Program. Week /Mar/05
1 C: How to Program Week 2 2007/Mar/05 Chapter 2 - Introduction to C Programming 2 Outline 2.1 Introduction 2.2 A Simple C Program: Printing a Line of Text 2.3 Another Simple C Program: Adding Two Integers
More informationSystems Programming. COSC Software Tools. Systems Programming. High-Level vs. Low-Level. High-Level vs. Low-Level.
Systems Programming COSC 2031 - Software Tools Systems Programming (K+R Ch. 7, G+A Ch. 12) The interfaces we use to work with the operating system In this case: Unix Programming at a lower-level Systems
More informationUNIX System Calls. Sys Calls versus Library Func
UNIX System Calls Entry points to the kernel Provide services to the processes One feature that cannot be changed Definitions are in C For most system calls a function with the same name exists in the
More informationProcesses often need to communicate. CSCB09: Software Tools and Systems Programming. Solution: Pipes. Recall: I/O mechanisms in C
2017-03-06 Processes often need to communicate CSCB09: Software Tools and Systems Programming E.g. consider a shell pipeline: ps wc l ps needs to send its output to wc E.g. the different worker processes
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationCS , Spring 2002 Exam 2
Full Name: CS 15-213, Spring 2002 Exam 2 March 28, 2002 Instructions: Make sure that your exam is not missing any sheets, then write your full name and Andrew login ID on the front. Write your answers
More informationECHO Process Instrumentation, Inc. Modbus RS485 Module. Operating Instructions. Version 1.0 June 2010
ECHO Process Instrumentation, Inc. Modbus RS485 Module Operating Instructions Version 1.0 June 2010 ECHO Process Instrumentation, Inc. PO Box 800 Shalimar, FL 32579 PH: 850-609-1300 FX: 850-651-4777 EM:
More informationLING 388: Computers and Language. Lecture 5
LING 388: Computers and Language Lecture 5 Administrivia Homework 3 graded Quick Homework 4 out today I'll be away next two weeks (my apologies) Colton Flowers, a HLT student, will take you through Python
More informationCSE506: Operating Systems CSE 506: Operating Systems
CSE 506: Operating Systems What Software Expects of the OS What Software Expects of the OS Shell Memory Address Space for Process System Calls System Services Launching Program Executables Shell Gives
More informationStandard File Pointers
1 Programming in C Standard File Pointers Assigned to console unless redirected Standard input = stdin Used by scan function Can be redirected: cmd < input-file Standard output = stdout Used by printf
More informationIntroduction to Programming in C Department of Computer Science and Engineering. Lecture No. #29 Arrays in C
Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #29 Arrays in C (Refer Slide Time: 00:08) This session will learn about arrays in C. Now, what is the word array
More informationUser Programs. Computer Systems Laboratory Sungkyunkwan University
Project 2: User Programs Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Supporting User Programs What should be done to run user programs? 1. Provide
More information