sysprog4

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    sysprog4 - Presentation Transcript

    1. C for Linux Session 4 BY: Eng.Ahmed Teirelbar Software Engineer Shuja' Consulting
    2. Your own .so gcc line – in the makefile ● Versioning ● Overview on how it works ● Dynamic loader ● Relocation - fPIC ● Sharing - mmap ●
    3. Code Organization Public/Private includes ● Reflection of your abstractions ● Delivery: install, lib, bin ●
    4. Multi-file Makefiles Example ● .h Dependency ● Multiple directories ●
    5. Command Line Processing argc, argv ● usage() ● get_opt – libsysfs example ● optarg – optind – getopt_long – ls example ● options structure –
    6. File I/O Intro FILE * (stream) interface ● fopen/fclose – fread/fwrite binary – fprintf/fscanf formatted – Descriptor interface ● open/close – read/write – Note: Filesystem is an abstraction ●
    7. Function Pointers and Callback ret (*name)(args) ● Can store (ptr) and execute (fun) ● Callback concept ● Flexible behavior – Decoupling/Abstraction –
    8. User Configuration Simple guidelines: ● Code encapsulates the parsing – Collect the data once – (Attribute, value) pairs ● Xinetd –
    9. Logging Your eyes on the software ● Debug levels ● Run-time (debug.on/msg in xinetd) – Compile-time – Lookup tables with functions ● Xinetd - parser –
    10. API Examples – Libsysfs Safe string macros ● Attr/Device/Bus/Driver/Module structures and ● corresponding functions (forced by model) Private/public includes and functions ● dlist: generic, separate testing (could be ● opaque) Compare callback ●
    11. Linked List Concepts ● Node – Next/prev – Head – Tail – Size – Singly vs Doubly Linked –
    12. Linked List – Cont'd Operations ● add/add_tail – remove – Example from kernel list ● Example from libsysfs dlist ●
    13. BIGNUM Independent functionality ● Modularity ● Decoupling ● Testability ● Abstraction – dealing with bignums ●
    14. BIGNUM Some of what we have discussed ● Initialization/Termination ● Memory alloc macros ● Expansion macro ● Debug macro ● BN_MASK2 -- SIXTY_FOUR ●
    15. Void * and Handle Void * ● Opaqueness ● Handle - Reference counting ● Handle - Pimpl Idiom (*) ●
    SlideShare Zeitgeist 2009

    + Ahmed MekkawyAhmed Mekkawy Nominate

    custom

    142 views, 0 favs, 0 embeds more stats

    forth part of the second session in phase I of syst more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 142
      • 142 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 4
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories