unix continuum of tools
Skip this Video
Download Presentation
Unix Continuum of Tools

Loading in 2 Seconds...

play fullscreen
1 / 11

Unix Continuum of Tools - PowerPoint PPT Presentation

  • Uploaded on

Unix Continuum of Tools. Do something once: use the command line Do something many times: Use an alias Use a shell script Do something that is complex of with large amounts of data: Use a C program Examples Command: pipes and redirection to search files

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' Unix Continuum of Tools ' - asher-jacobson

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
unix continuum of tools
Unix Continuum of Tools
  • Do something once: use the command line
  • Do something many times:
    • Use an alias
    • Use a shell script
  • Do something that is complex of with large amounts of data: Use a C program
  • Examples
    • Command: pipes and redirection to search files
    • Shell script: apply a particular kind of filter using different parameters at different times
    • C program: create a simulation program
c advantages and disadvantages
C Advantages and Disadvantages
  • Advantages
    • Super fast
    • Concise set of syntax
    • Portable: all systems can compile c
    • Very popular
  • Disadvantages
    • Not object oriented meaning that procedures and functions are written to operate on data constructs
  • 1972
    • Dennis Ritchie creates the c language
    • The classic book by Kernigham and Ritchie defines the syntax for this language.
    • 1990 ANSI C with some minor extensions
    • 1999 ANSI C with some more minor extensions
  • 1979
    • C++ which is C with classes
    • Additional enhancements since then
  • 1990s: Java
    • programming language based on C++ syntax
  • 2002: C#
    • .net language with characteristics of Java and C++

Note:If you know Java, you know lots of C ("Just Like Java" or JLJ)

making a c program
Making a C Program
  • Create your program

>vi hello.c

  • Complile and link
    • The standard UNIX command: >cc <file>
    • The GNU command: >gcc <file>
    • Flags
      • -o <file> creates an executable named <file> instead of a.out
      • -g create symbolic information for the gdb debugger
      • -l <library> include a run time library
      • -L <path> search path for libraries
  • Debug: >gdb executable (we will cover this later)
  • To run: just type <executable> or ./<executable> if . is not in the search path
development cycle
Development Cycle
  • Design and code
  • Editor to enter the code: program.c
  • Compile: program.o
  • Link: program
  • If link errors, return to step 2
  • Execute program
  • If logic errors return to step 1

Note: Steps 3 and 4 is normally done by gcc in one step

hello world program

hello.c prints "hello world"

  April 29, 2002: Kevin Sahr


#include <stdio.h>

int main(int argc, char* argv[])


printf("hello world\n"); 

  return 0; 

} /* main */

/* to */ are comments

include merges source from stdio.h

main function runs first

return 0 tells shell result ok, return # indicates an error

printf is like java println, but with more features

the * is used to reference an array called argv

argc is the number of command line arguments

argv[0] has the program name, command line arguments are in argv[1] .. argv[n]

{ and } are JLJ

Hello World Program

JLJ: each statement ends with ;

c program structure
C Program Structure
  • Comments
    • At top: File name, date, author, purpose
    • Throughout: clarify code as needed
  • Preprocessor directives
    • C programs run through a preprocessor phase first
    • This phase: Include other source files, perform modifications to the source file
    • Preprocessor directives do not end with ;
  • Include the main function
  • Include other functions (Subject for a later week)
  • C comments are /* … */
    • Do not nest comments
    • In labs, include the name of the file, your name, and date at the top of every file you submit
    • Other comments will be optional, but use when the code is not easy to follow
  • The // format were introduced in C++
    • They presently are not part of C
    • They are proposed for the next version of C
header files stdio h and stdlib h
Header files: stdio.h and stdlib.h
  • Includes: analogous to Java Includes
    • stdio.h is a text file containing prototypes for stream based I/O functions
    • stdlib.h another text file containing prototypes to the C "standard library"
  • Prototypes:
    • analogous to Java Interfaces
    • function bodies completed when linking
main function
main() function
  • main()
    • Every C program must have a main function
    • Analogous to Java "static void main(String[] args)"
    • Syntax: int main(int argc, char *argv[])
      • argc: number of arguments
      • argv: an array of argument strings
    • return statement returns to the caller
      • main() function returns to the shell
      • return 0; tells the shell that the run was successful
      • return #; returns an error code to the shell
converting string data
Converting String Data
  • Commonly used functions
    • Ascii to integer: atoi(string);
    • Ascii to float: atof(string);
    • String to double: strtod(char *start, char *end);
  • Example

Int main(intargc, char *args[])


int x = atoi(args[1]);

double y = atof(args[2]);

double z = strtod(args[2], NULL); // entire string