Advanced UNIX progamming - PowerPoint PPT Presentation

About This Presentation
Title:

Advanced UNIX progamming

Description:

C-h t get tutorial. C-g cancel command. C-x C-c quit emacs. C-h help. Editors. etags ... www.cs.fsu.edu/cgi-bin/man.cgi can be used to find more information ... – PowerPoint PPT presentation

Number of Views:234
Avg rating:3.0/5.0
Slides: 21
Provided by: asri9
Learn more at: http://www.cs.fsu.edu
Category:

less

Transcript and Presenter's Notes

Title: Advanced UNIX progamming


1
Advanced UNIX progamming
  • Fall 2002
  • Instructor Ashok Srinivasan
  • Lecture 2

Class web site http//www.cs.fsu.edu/asriniva/co
urses/aup-02
Acknowledgements The syllabus and power point
presentations are modified versions of those by
T. Baker and X. Yuan
2
Announcements
  • Collected your quizzes
  • The grade on this will not count towards your
    course grade
  • However, it will provide you feedback on your C
    knowledge
  • You can try the linked list question at home
  • You should be able to write the code within 15
    minutes, without referring to any book
  • You should have received an email from me, if you
    are registered for this course

3
Week 1 Topics
  • Course outline and policies
  • UNIX programming environment
  • Editors
  • C compilers and debuggers
  • Makefiles
  • Review some features of C
  • Header files
  • Command line arguments
  • Utilities
  • Review some UNIX system calls
  • system, etc

4
UNIX programming environment
  • Editors
  • C compilers
  • Debugger
  • Makefiles
  • make

5
Editors
  • vi, pico, emacs, etc
  • What is good about emacs?
  • emacs is more than just an editor
  • You can compile and edit within emacs
  • If you know lisp, you can expand its
    functionality
  • Some useful commands to get started
  • C-h t get tutorial
  • C-g cancel command
  • C-x C-c quit emacs
  • C-h help

6
etags
  • This helps you go to a function definition
  • Particularly useful in programs spanning multiple
    files
  • At the shell prompt, type
  • etags .ch
  • In emacs
  • Choose visit tags from the _C_ menu
  • Or ESC-x visit-tags-table
  • Subsequently, find tag from the menu, or ESC-.,
    will take you to the function definition

7
(No Transcript)
8
Compiling in emacs
  • Choose compile from the _C_ menu
  • Or ESC-x compile
  • Errors and warnings will be printed on a
    sub-window
  • CTL-X will take you to the next error or
    warning

9
C compilers
  • gcc, cc
  • Using ANSI C, the code must pass with flags
  • Wall ansi pedantic
  • with no warning messages
  • See example1.c
  • How can we fix warning?
  • Some examples
  • gcc g Wall ansi pedantic example1.c
  • gcc g c Wall ansi pedantic example1.c
  • gcc g example1.o
  • gcc g example.o -lm

10
Debugger
  • ddd, xxgdb, gdb
  • The code must be compiled with g option.
  • The power of a debugger
  • Finding the line that causes core dump
  • See example1.c
  • Break point, show value, change value, step,
    next, continue, print
  • Very efficient in debugging sequential code
  • Not very effective in debugging concurrent code
    (multiple threads, multiple processes)
  • Good software development practice You must have
    seen each line of your code execute in the
    debugger, at least once

11
  • run ltcommand line argumentsgt to run the program

12
Make
  • make -f makefileoption target
  • A tool to update files derived from other files
  • The default files for make are ./makefile,
    ./Makefile, ./s.makefile
  • Use the f option to specify some other file
  • make f makefile1
  • The makefile has three components
  • Macros define constants
  • Target rules Specify how targets are made
  • Inference rules Specify how targets can be made,
    implicitly. make will first check if a target
    rule applies, before using inference rules.

13
make ... continued
  • Macros
  • String1 string2.
  • Example
  • CCgcc
  • CFLAG-Wall ansi pedantic
  • Target rules
  • Target prerequisite
  • lttabgt command
  • lttabgt command
  • Example
  • a.out myprog1.c myprog2.c myprog3.c
    (CC) (CFLAG) myprog1.c myprog2.c
    myprog3.c

14
make ... continued
  • Inference rules
  • Target
  • lttabgt command
  • lttabgt command
  • Target must be of the form .s1 or .s1.s2 where
    .s1 and .s2 must be prerequisites of the
    .SUFFIXES special target.
  • .s1.s2 ? make .s2 from .s1
  • .s1 ? make from .s1
  • Example
  • .c
  • (CC) o _at_ lt
  • .c.o
  • (CC) c lt

15
makefile examples
  • See the example makefiles
  • makefile, makefile1, makefile2
  • makefile1 will recompile only the modified files,
    instead of everything
  • makefile2 has inference rules
  • www.cs.fsu.edu/cgi-bin/man.cgi can be used to
    find more information

16
Review some features of C
  • Header files
  • Macros
  • Command line arguments
  • Utilities

17
Header files
  • Usually define interfaces between separately
    compiled modules
  • May contain macro definitions, preprocessor
    directives, declarations of types, and function
    prototypes
  • Should not contain variable definitions or
    executable code

18
Some header file errors
  • Improper header file use can cause problems
  • Try compiling example2.c
  • Including a header file multiple times may cause
    redefinition errors
  • Why does including stdio.h twice not cause any
    problem?
  • Look at /usr/include/stdio.h

19
Conditional Code in Headers
  • Preprocessor directives are used to prevent the
    body of a header file from being used multiple
    times.
  • ifndef MYHEADER
  • define MYHEADER
  • / the body of the header file /
  • endif

20
Macros with and without Parameters
  • define MAX_LENGTH 256
  • ... for (i 0 i lt MAX_LENGTH i) ...
  • Macros can have parameters
  • define max(a,b) (a gt b) ? a b
  • What is wrong with the following?
  • define sum(a, b) a b
  • define product(a, b) ab
  • See example3.c, example3b.c, example3c.c, and
    example3d.c
Write a Comment
User Comments (0)
About PowerShow.com