Foundation Services

Total Page:16

File Type:pdf, Size:1020Kb

Foundation Services VisiQuest MANUALS Programming Services Volume I Foundation Services AccuSoft Corp. www.accusoft.com Program Services Volume I Chapter 0 Preface Copyright (c) AccuSoft Corporation, 2004. All rights reserved. Chapter 0 - Preface A. About This Book This volume is intended for the VisiQuest Toolbox programmer who wants to utilize the library routines avail- able in VisiQuest Foundation Services to develop new programs. It is also intended for those who are using VisiQuest as a software integration system, and wish to modify existing code such that it takes full advantage of the capabilities provided by VisiQuest. Foundation Services is the collective name for the six libraries available in the bootstrap toolbox. The applica- tion program developed using Foundation Services will automatically capitalize on the portability derived from the operation system abstraction provided by Foundation Services. Similarly, an application program using Foundation Services will transparently obtain the capability to support the variety of data transport mecha- nisms handled by Foundation Services. In addition, Foundation Services offers a variety of mathematical functions, a symbolic expression parser, and a wide variety of commonly used functions and utilities. Foundation Services is one of three major categories into which VisiQuest libraries are divided. Data Services emcompasses the libraries in the dataser v toolbox; these libraries consist of routines for accessing and manip- ulating data. GUI & Visualization Services, consisting of libraries in the design toolbox, provides routines for visualizing data in the form of images and graphics. Together, Foundation Services, Data Services, and GUI & Visualization Services contain all the libraries that are distributed with VisiQuest. Program Services refers to all three services as a group. Each of three services in Program Services has its own volume in this set. Vol- ume I, this book, deals exclusively with Foundation Services. B. Assumptions It is assumed that the reader is well-versed in the C programming language and is familiar with the UNIX operating system. It is assumed that the reader has experience with system programming using the system calls available in libc. Familiarity with routines available in libm is also helpful, but not necessary. C. Organization The first chapter gives an introduction to Foundation Services. This introduction includes an overview of Pro- gram Services as a whole, in order to establish a context for discussing the different services that are available as part of Foundation Services. Each of the following chapters is devoted to one of the services within Foun- dation Services. The services included in Foundation Services are: Basic Services Math Services Expression Services Operating System Services 0-1 Preface Program Services Volume I - Chapter 0 D. Conventions The following conventions are used in this manual. 1. Non-VisiQuest function names, library names, and program names appear in italics. 2. VisiQuest function names appear in courier. 3. VisiQuest library names appear in helvetica. 4. VisiQuest program names appear in helvetica. 5. VisiQuest toolbox names appear in helvetica. 6. Code and file excerpts appear in courier. 7. Specific filenames and directory paths appear in courier. 8. Command line examples and instructions appear in courier. 9. For emphasis, some words appear in italics. E. Related Books Related books on VisiQuest include: VisiQuest Installation Guide Introduction to VisiQuest Application Toolboxes Toolbox Programming Visual Programming Program Services Volume II, Data Services Program Services Volume III, GUI & Visualization Services 0-2 Table of Contents A. About This Book .......................... 0-1 B. Assumptions ............................ 0-1 C. Organization ............................ 0-1 D. Conventions ............................ 0-2 E. Related Books ........................... 0-2 -i- Preface Program Services Volume I - Chapter 0 This page left intentionally blank -ii- Program Services Volume I Chapter 1 Introduction Copyright (c) AccuSoft Corporation, 2004. All rights reserved. Chapter 1 - Introduction A. About Foundation Services Foundation Services is the collective name for the six libraries available in the bootstrap toolbox. The appli- cation program developed using these function calls will automatically gain the portability provided by Foun- dation Services. An application program using Foundation Services will transparently obtain the capability to support a variety of data transport mechanisms, including files, mmap, and shared memory. In addition, Foun- dation Services offers an assemblage of mathematical functions, a symbolic expression parser, and a wide vari- ety of commonly-used functions and utilities. VisiQuest libraries are divided into three major categories: Foundation Services, Data Services, and GUI & Visualization Services. Program Services refers to all three categories as a group. Foundation Services encompasses several distinct Program Services libraries. Data Services encompasses the libraries in the dataser v toolbox. These libraries consist of routines for accessing and manipulating data. GUI & Visualiza- tion Services encompasses the libraries in the design toolbox. These libraries consist of routines for visualiz- ing data in the form of images and graphics. Together, Foundation Services, Data Services, and GUI & Visual- ization Services contain all the libraries that are distributed within VisiQuest. The following section provides an overview of Program Services. B. Overview of Program Services VisiQuest Program Services is a large group of libraries that are layered to provide the software developer with a variety of programming interfaces that trade off reduced complexity against detailed control. Program Ser- vices consists of three categories: Foundation Services, Data Services, and GUI Visualization Services. Each Program Services category is comprised of one or more distinct libraries. While this volume deals exclusively with Foundation Services, an overview of Program Services as a whole follows in order to provide a context for understanding the role of Foundation Services. 1-1 Introduction Program Services Volume I - Chapter 1 Data Services GUI & Visualization Services Application GUI Visualization Data Services Services Services data models: VisiQuest widget set polymorphic, visual objects for: color, geometry GUI Objects image / animation display GUI creation/management 2D / 3D plotting data format conversion pseudocolor, thresholding circles, markers, lines, manager object / layout data type conversion rectangles, polylines, etc. event handlers, callbacks large data sets action & input handlers multidimensional data Foundation Services Operating Basic Math Expression System User Interface Services Services Services Services Services general utilities math utilities complex & symbolic UIS interpretation strings, arrays, lists data transport double complex arithmetic expression CLUI parsing memory allocation distributed computing matrix arithmetic parser string-to-token process execution sequence generation database access interpolation Figure 1: The VisiQuest software infrastructure is composed of three major Program Services cat- egories: Data Services, GUI & Visualization Services and Foundation Services. Each Program Services category is comprised of one or more distinct libraries. B.1. Foundation Services Foundation Services encompasses several distinct Program Services. Together, these services fulfill all the requirements of the VisiQuest software infrastructure that do not deal with either data processing or data dis- play. Foundation Services provides an extensive Application Programming Interface (API) which ensures portability by introducing a POSIX-compliant layer of abstraction over the operating system. These services also equip the software developer with an extensive range of functionality, ranging from math utilities to dis- tributed computing. Furthermore, use of VisiQuest Foundation Services ensures application capability with the VisiQuest visual programming environment, cantata. 1-2 Introduction Program Services Volume I - Chapter 1 Foundation Services is divided into a number of specific services: Basic Services, Mathematical Services, Operating System Services, Expression Services, and User Interface Services. Basic Services Basic Services equips the software developer with a broad range of commonly-used functions and utilities, including a large number of utility functions that are able to handle memory allocation, string manipulation, string parsing, and message reporting. Mathematical Services Mathematical Services provides machine-independent implementations of common mathematical operations when not natively available, and offers a variety of useful extensions to the standard mathematical functions. Routines in Mathematical Services are designed to be highly portable and efficient. Operating System Services Operating System Services ensures portability by isolating VisiQuest from the operating system. It extends the capabilities of the operating system and allows seamless integration with cantata. It hides the details of data transports such as files, sockets, shared memory, memory mapped, stream, and pipes. It also transparently supports distributed computing. The API is modeled after UNIX function calls and therefore existing applications can be quickly and easily converted to Foundation Services. Expression Services Expression Services offers a symbolic
Recommended publications
  • Software Comprehension Using Open Source Tools: a Study
    International Journal of Computer Sciences and Engineering Open Access Survey Paper Vol.-7, Issue-3, March 2019 E-ISSN: 2347-2693 Software Comprehension Using Open Source Tools: A Study Jyoti Yadav Department of Computer Science, Savitribai Phule Pune University, Maharashtra, India *Corresponding Author: [email protected], Tel.: 9881252910 DOI: https://doi.org/10.26438/ijcse/v7i3.657668 | Available online at: www.ijcseonline.org Accepted: 12/Mar/2019, Published: 31/Mar/2019 Abstract: Software applications developed in recent times are written in lakhs of lines of code and have become increasingly complex in terms of structure, behaviour and functionality. At the same time, development life cycles of such applications reveal a tendency of becoming increasingly shorter, due to factors such as rapid evolution of supporting and enabling technologies. As a consequence, an increasing portion of software development cost shifts from the creation of new artefacts to the adaptation of existing ones. A key component of this activity is the understanding of the design, operation, and behaviour of existing artefacts of the code. For instance, in the software industry, it is estimated that maintenance costs exceed 80% of the total costs of a software product’s lifecycle, and software understanding accounts for as much as half of these maintenance costs. Software Comprehension is a key subtask of software maintenance and evolution phase, which is driven by the need to change software. This paper will help in enhancing the ability of the developers to read and comprehend large pieces of software in an organized manner, even in the absence of adequate documentation by using existing open source tools.
    [Show full text]
  • Schon Mal Dran Gedacht,Linux Auszuprobieren? Von G. Schmidt
    Schon mal dran gedacht, Linux auszuprobieren? Eine Einführung in das Betriebssystem Linux und seine Distributionen von Günther Schmidt-Falck Das Magazin AUSWEGE wird nun schon seit 2010 mit Hilfe des Computer-Betriebs- system Linux erstellt: Texte layouten, Grafiken und Fotos bearbeiten, Webseiten ge- stalten, Audio schneiden - alles mit freier, unabhängiger Software einer weltweiten Entwicklergemeinde. Aufgrund der guten eigenen Erfahrungen möchte der folgende Aufsatz ins Betriebssystem Linux einführen - mit einem Schwerpunkt auf der Distri- bution LinuxMint. Was ist Linux? „... ein hochstabiles, besonders schnelles und vor allem funktionsfähiges Betriebssystem, das dem Unix-System ähnelt, … . Eine Gemeinschaft Tausender programmierte es und verteilt es nun unter der GNU General Public Li- cense. Somit ist es frei zugänglich für jeden und kos- tenlos! Mehrere Millionen Leute, viele Organisatio- nen und besonders Firmen nutzen es weltweit. Die meisten nutzen es aus folgenden Gründen: • besonders schnell, stabil und leistungs- stark • gratis Support aus vielen Internet- Newsgruppen Tux, der Pinguin, ist das Linux-Maskottchen • übersichtliche Mailing-Listen • massenweise www-Seiten • direkter Mailkontakt mit dem Programmierer sind möglich • Bildung von Gruppen • kommerzieller Support“1 Linux ist heute weit verbreitet im Serverbereich: „Im Oktober 2012 wurden mindes- tens 32% aller Webseiten auf einem Linux-Server gehostet. Da nicht alle Linux-Ser- ver sich auch als solche zu erkennen geben, könnte der tatsächliche Anteil um bis zu 24% höher liegen. Damit wäre ein tatsächlicher Marktanteil von bis zu 55% nicht 1 http://www.linuxnetworx.com/linux-richtig-nutzen magazin-auswege.de – 2.11.2015 Schon mal dran gedacht, Linux auszuprobieren? 1 auszuschliessen. (…) Linux gilt innerhalb von Netzwerken als ausgesprochen sicher und an die jeweiligen Gegebenheiten anpassbar.
    [Show full text]
  • CMSC 246 Systems Programming Spring 2018 Bryn Mawr College Instructor: Deepak Kumar
    1/23/2018 CMSC 246 Systems Programming Spring 2018 Bryn Mawr College Instructor: Deepak Kumar Input • scanf() is the C library’s counterpart to printf. • Syntax for using scanf() scanf(<format-string>, <variable-reference(s)>) • Example: read an integer value into an int variable data. scanf("%d", &data); //read an integer; store into data • The & is a reference operator. More on that later! 2 1 1/23/2018 Reading Input • Reading a float: scanf("%f", &x); • "%f" tells scanf to look for an input value in float format (the number may contain a decimal point, but doesn’t have to). 3 Standard Input & Output Devices • In Linux the standard I/O devices are, by default, the keyboard for input, and the terminal console for output. • Thus, input and output in C, if not specified, is always from the standard input and output devices. That is, printf() always outputs to the terminal console scanf() always inputs from the keyboard • Later, you will see how these can be reassigned/redirected to other devices. 4 2 1/23/2018 Program: Convert Fahrenheit to Celsius • The celsius.c program prompts the user to enter a Fahrenheit temperature; it then prints the equivalent Celsius temperature. • Sample program output: Enter Fahrenheit temperature: 212 Celsius equivalent: 100.0 • The program will allow temperatures that aren’t integers. 5 Program: Convert Fahrenheit to Celsius ctof.c #include <stdio.h> int main(void) { float f, c; printf("Enter Fahrenheit temperature: "); scanf("%f", &f); c = (f – 32) * 5.0/9.0; printf("Celsius equivalent: %.1f\n", c); return
    [Show full text]
  • Kubuntu Desktop Guide
    Kubuntu Desktop Guide Ubuntu Documentation Project <[email protected]> Kubuntu Desktop Guide by Ubuntu Documentation Project <[email protected]> Copyright © 2004, 2005, 2006 Canonical Ltd. and members of the Ubuntu Documentation Project Abstract The Kubuntu Desktop Guide aims to explain to the reader how to configure and use the Kubuntu desktop. Credits and License The following Ubuntu Documentation Team authors maintain this document: • Venkat Raghavan The following people have also have contributed to this document: • Brian Burger • Naaman Campbell • Milo Casagrande • Matthew East • Korky Kathman • Francois LeBlanc • Ken Minardo • Robert Stoffers The Kubuntu Desktop Guide is based on the original work of: • Chua Wen Kiat • Tomas Zijdemans • Abdullah Ramazanoglu • Christoph Haas • Alexander Poslavsky • Enrico Zini • Johnathon Hornbeck • Nick Loeve • Kevin Muligan • Niel Tallim • Matt Galvin • Sean Wheller This document is made available under a dual license strategy that includes the GNU Free Documentation License (GFDL) and the Creative Commons ShareAlike 2.0 License (CC-BY-SA). You are free to modify, extend, and improve the Ubuntu documentation source code under the terms of these licenses. All derivative works must be released under either or both of these licenses. This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE AS DESCRIBED IN THE DISCLAIMER. Copies of these licenses are available in the appendices section of this book. Online versions can be found at the following URLs: • GNU Free Documentation License [http://www.gnu.org/copyleft/fdl.html] • Attribution-ShareAlike 2.0 [http://creativecommons.org/licenses/by-sa/2.0/] Disclaimer Every effort has been made to ensure that the information compiled in this publication is accurate and correct.
    [Show full text]
  • The C Programming Language
    The C programming Language The C programming Language By Brian W. Kernighan and Dennis M. Ritchie. Published by Prentice-Hall in 1988 ISBN 0-13-110362-8 (paperback) ISBN 0-13-110370-9 Contents ● Preface ● Preface to the first edition ● Introduction 1. Chapter 1: A Tutorial Introduction 1. Getting Started 2. Variables and Arithmetic Expressions 3. The for statement 4. Symbolic Constants 5. Character Input and Output 1. File Copying 2. Character Counting 3. Line Counting 4. Word Counting 6. Arrays 7. Functions 8. Arguments - Call by Value 9. Character Arrays 10. External Variables and Scope 2. Chapter 2: Types, Operators and Expressions 1. Variable Names 2. Data Types and Sizes 3. Constants 4. Declarations http://freebooks.by.ru/view/CProgrammingLanguage/kandr.html (1 of 5) [5/15/2002 10:12:59 PM] The C programming Language 5. Arithmetic Operators 6. Relational and Logical Operators 7. Type Conversions 8. Increment and Decrement Operators 9. Bitwise Operators 10. Assignment Operators and Expressions 11. Conditional Expressions 12. Precedence and Order of Evaluation 3. Chapter 3: Control Flow 1. Statements and Blocks 2. If-Else 3. Else-If 4. Switch 5. Loops - While and For 6. Loops - Do-While 7. Break and Continue 8. Goto and labels 4. Chapter 4: Functions and Program Structure 1. Basics of Functions 2. Functions Returning Non-integers 3. External Variables 4. Scope Rules 5. Header Files 6. Static Variables 7. Register Variables 8. Block Structure 9. Initialization 10. Recursion 11. The C Preprocessor 1. File Inclusion 2. Macro Substitution 3. Conditional Inclusion 5. Chapter 5: Pointers and Arrays 1.
    [Show full text]
  • Fundamentals of C Structure of a C Program
    Fundamentals of C Structure of a C Program 1 Our First Simple Program Comments - Different Modes 2 Comments - Rules Preprocessor Directives Preprocessor directives start with # e.g. #include copies a file into the source code before compilation 2 forms…..we will usually see the first #include <systemFilename> #include “undefinedFilename” Within “ ” : personal file in your own directory 3 We will almost always use #include <stdio.h> • stdio.h is the standard input/output header • Contains code required for I/O (Input/Output) •.hfiles are header files Includes header ; The .obj part on Linking NO code is generally included except on linking • Header files contain definitions The function : main() ALL Programs must have a main() function. Later we will have add other functions. Different Formats: main( ) int main (void ) ***The book likes this void main(void) int main( ) 4 main( ) , void main(void) End with return; ************************** int main (void ) , int main( ) End with return 0; Back To Our First Program 5 Variables A Variable is a block of memory that stores data. A variable has a particular “Type”, i.e. it stores a particular kind of data A variable is named with an appropriate Identifier (or Name) Suppose we have a variable declared as follows: int number_of_days This reserves a block of memory which holds an integer 6 Schematic view: number_of_days 365 In the course of the program we might want to change the value in the variable. So that later we might want: number_of_days 7361 • The “actual” view of memory: 4 bytes number_of_days 01100000 11001010 10010100 00100111 So a variable takes a fixed number of bytes in memory 7 Rules for Naming Variables 1.
    [Show full text]
  • Lesson 01 Programming with C
    Lesson 01 Programming with C Pijushkanti Panigrahi What is C ? • The C is a programming Language, developed by Dennis Ritchie for creating system applications that directly interact with the hardware devices such as drivers, kernels, etc. • C programming is considered as the base for other programming languages, that is why it is known as mother language. • C is famous for its Compactness. • C language is case sensitive. 2 Features It can be defined by the following ways: Mother language System programming language Procedure-oriented programming language Structured programming language Mid-level programming language 3 1) C as a mother language ? • C language is considered as the mother language of all the modern programming languages because most of the compilers, JVMs, Kernels, etc. are written in C language , and most of the programming languages follow C syntax, for example, C++, Java, C#, etc. • It provides the core concepts like the array , strings , functions , file handling , etc . that are being used in many languages like C++ , Java , C# , etc. 4 2) C as a system programming language • A system programming language is used to create system software. • C language is a system programming language because it can be used to do low-level programming (for example driver and kernel) . • It is generally used to create hardware devices, OS, drivers, kernels, etc. For example, Linux kernel is written in C. 5 3) C as a procedural language • A procedure is known as a function, method, routine, subroutine, etc. A procedural language specifies a series of steps for the program to solve the problem.
    [Show full text]
  • Pipenightdreams Osgcal-Doc Mumudvb Mpg123-Alsa Tbb
    pipenightdreams osgcal-doc mumudvb mpg123-alsa tbb-examples libgammu4-dbg gcc-4.1-doc snort-rules-default davical cutmp3 libevolution5.0-cil aspell-am python-gobject-doc openoffice.org-l10n-mn libc6-xen xserver-xorg trophy-data t38modem pioneers-console libnb-platform10-java libgtkglext1-ruby libboost-wave1.39-dev drgenius bfbtester libchromexvmcpro1 isdnutils-xtools ubuntuone-client openoffice.org2-math openoffice.org-l10n-lt lsb-cxx-ia32 kdeartwork-emoticons-kde4 wmpuzzle trafshow python-plplot lx-gdb link-monitor-applet libscm-dev liblog-agent-logger-perl libccrtp-doc libclass-throwable-perl kde-i18n-csb jack-jconv hamradio-menus coinor-libvol-doc msx-emulator bitbake nabi language-pack-gnome-zh libpaperg popularity-contest xracer-tools xfont-nexus opendrim-lmp-baseserver libvorbisfile-ruby liblinebreak-doc libgfcui-2.0-0c2a-dbg libblacs-mpi-dev dict-freedict-spa-eng blender-ogrexml aspell-da x11-apps openoffice.org-l10n-lv openoffice.org-l10n-nl pnmtopng libodbcinstq1 libhsqldb-java-doc libmono-addins-gui0.2-cil sg3-utils linux-backports-modules-alsa-2.6.31-19-generic yorick-yeti-gsl python-pymssql plasma-widget-cpuload mcpp gpsim-lcd cl-csv libhtml-clean-perl asterisk-dbg apt-dater-dbg libgnome-mag1-dev language-pack-gnome-yo python-crypto svn-autoreleasedeb sugar-terminal-activity mii-diag maria-doc libplexus-component-api-java-doc libhugs-hgl-bundled libchipcard-libgwenhywfar47-plugins libghc6-random-dev freefem3d ezmlm cakephp-scripts aspell-ar ara-byte not+sparc openoffice.org-l10n-nn linux-backports-modules-karmic-generic-pae
    [Show full text]
  • JPEG Renaming and Loss-Free Processing EXIF TRICKS
    COVER STORY Image Processing with EXIF JPEG renaming and loss-free processing EXIF TRICKS You can rename and modify JPEG files without touching the graphics by manipulating settings in the file header. www.sxc.hu BY MARTIN STEIGERWALD he Exchange Image File (EXIF) data is included with image file formats tings such as the date and time of cre- format is a standard developed such as JPEG and TIFF, as well as with ation, the exposure time, the aperture Tby the Japan Electronic Industry audio formats such as RIFF. Depending setting, the exposure program, the size, Development Association (JEIDA) that on the model and make of your camera, the resolution, and the orientation of the lets digital cameras store meta-informa- the meta-information stored in the image. tion in the header of an image file. EXIF header of the image file can include set- Linux provides several tools for ma- nipulating EXIF data directly. Directly Table 1: EXIF Applications manipulating the metadata associated with an image file saves time, promotes Application EXIF Support Loss-free Rotation and Mirroring automation, and, in some cases, pre- Digikam 0.7.2, Photo management Load, display, but not save In the drop-down for the image, also automatically based on EXIF vents the data loss that would occur information with graphic manipulation. This article Eye of Gnome 2.8.2, Image Viewer Load, display, and save No describes some techniques for using Feh 1.3.4, Image viewer No Via File | Edit in Place. EXIF infor- EXIF metadata to rename and manipu- mation is lost late JPEG images.
    [Show full text]
  • Debian and Ubuntu
    Debian and Ubuntu Lucas Nussbaum lucas@{debian.org,ubuntu.com} lucas@{debian.org,ubuntu.com} Debian and Ubuntu 1 / 28 Why I am qualified to give this talk Debian Developer and Ubuntu Developer since 2006 Involved in improving collaboration between both projects Developed/Initiated : Multidistrotools, ubuntu usertag on the BTS, improvements to the merge process, Ubuntu box on the PTS, Ubuntu column on DDPO, . Attended Debconf and UDS Friends in both communities lucas@{debian.org,ubuntu.com} Debian and Ubuntu 2 / 28 What’s in this talk ? Ubuntu development process, and how it relates to Debian Discussion of the current state of affairs "OK, what should we do now ?" lucas@{debian.org,ubuntu.com} Debian and Ubuntu 3 / 28 The Ubuntu Development Process lucas@{debian.org,ubuntu.com} Debian and Ubuntu 4 / 28 Linux distributions 101 Take software developed by upstream projects Linux, X.org, GNOME, KDE, . Put it all nicely together Standardization / Integration Quality Assurance Support Get all the fame Ubuntu has one special upstream : Debian lucas@{debian.org,ubuntu.com} Debian and Ubuntu 5 / 28 Ubuntu’s upstreams Not that simple : changes required, sometimes Toolchain changes Bugfixes Integration (Launchpad) Newer releases Often not possible to do work in Debian first lucas@{debian.org,ubuntu.com} Debian and Ubuntu 6 / 28 Ubuntu Packages Workflow lucas@{debian.org,ubuntu.com} Debian and Ubuntu 7 / 28 Ubuntu Packages Workflow Ubuntu Karmic Excluding specific packages language-(support|pack)-*, kde-l10n-*, *ubuntu*, *launchpad* Missing 4% : Newer upstream
    [Show full text]
  • Comp.Lang.C Frequently Asked Questions
    comp.lang.c Frequently Asked Questions comp.lang.c Frequently Asked Questions This collection of hypertext pages is Copyright 1995 by Steve Summit. Content from the book ``C Programming FAQs: Frequently Asked Questions'' (Addison-Wesley, 1995, ISBN 0-201-84519-9) is made available here by permission of the author and the publisher as a service to the community. It is intended to complement the use of the published text and is protected by international copyright laws. The content is made available here and may be accessed freely for personal use but may not be published or retransmitted without written permission. This page is the top of an HTML version of the Usenet comp.lang.c Frequently Asked Questions (FAQ) list. An FAQ list is a collection of questions commonly asked on Usenet, together with presumably definitive answers, provided in an attempt to keep repeated questions on the newsgroup down to a low background drone so that discussion can move on to more interesting matters. Since they distill knowledge gleaned from many sources and answer questions which are demonstrably Frequent, FAQ lists serve as useful references outside of their originating Usenet newsgroups. This list is, I dare to claim, no exception, and the HTML version you're looking at now, as well as other versions referenced just below, are intended to be useful to C programmers everywhere. Several other versions of this FAQ list are available, including a book-length version published by Addison-Wesley. (The book, though longer, also has a few more errors; I've prepared an errata list.) See also question 20.40.
    [Show full text]
  • Second Edition
    SECOND EDITION ~..... .. ... ··-- - -··· · -::.: -· ..- THE PRENTICE HALL SOFTWARE SERIES 001 ServiceNow's Exhibit No. 1004 Ubnry of Colllftll CataloJinl-in-PubUcation Data Kernighan, Brian W. The C programming language. I ncludes i ndex . 1. C (Computer program language) I • .Ritchie, Dennis M. II. Title. QA76.73.C15K47 1988 005 . 13'3 88-5934 ISBN 0-13-110370-9 ISBN 0-13-110362-8 (pbk.) Copyriabt o 1988, 1978 by BeU Telephone Laboratories, Incorporated. C PubJilhcd by Prentice Hall P T R Pronti~·Halt. Inc. Upper Saddle River, NJ 07458 All riahts reserved. No part of this publiaation may be reproduced, stored in a retrieval system. or transmitted, in any form or by any means, electronic, mechanical, photocopy· ina, record ina. or otherwise, without the prior written permission of the publisher. Printed in the United States of America. Publisbcd simultafteOUIIy in Canada. UNIX is a rqistered trademark of AT&: T. This boot was typeset (pic: tbll eqn I troff ...) in Times Roman and Courier by the authors, usina an AutoJoaic APS-S phototypesetter and a DEC VAX 8S.SO runniq tbe 9th Edition of the UNIX• operatina system. Prentice Hall Software Series Brian Kernighan, Advisor ISBN 0-13-110362-8 Text printed in the United States on recycled paper at Courier in Westford, Massachusetts. Fifty-Second Printing, February 2014 ISBN o-l3-1.1D3b2-a {PBK> ISBN 0-13-110370-, Prentice-Hall International (UK) Limited, London Prentice-Hall of Australia Pty. Limited, Sydney Prentice-Hall of Canada, Inc., Toronto Prentice-Hall Hispanoamericana, S. A., Mexico Prentice-Hall ofindia Private Limited, New Delhi Prentice-Hall of Japan, Inc., Tokyo Prentice-Hall Asia Pte.
    [Show full text]