Library and function of C. Dr. Donald Davendra Ph.D. (Department of ComputingLibrary Science, andfei function VSB-TU of COstrava)

Similar documents
Introduction C CC. Advanced C

C: How to Program. Week /May/28

Chapter 8 C Characters and Strings

Characters and Strings

C mini reference. 5 Binary numbers 12

Chapter 8 - Characters and Strings

Computer Programming

C Libraries. Bart Childs Complementary to the text(s)

Contents. Preface. Introduction. Introduction to C Programming

Outline. Computer Programming. Structure of a function. Functions. Function prototype. Structure of a function. Functions

MC8051: Speichertypen und Adressräume

by Pearson Education, Inc. All Rights Reserved.

Fundamentals of Programming. Lecture 11: C Characters and Strings

,$5(0%(''(':25.%(1&+ $16,&'(9(/230(17722/6 EMBEDDED WORKBENCH ANSI C COMPILER C-SPY FOR NATIONAL SEMICONDUCTOR CORP. S &RPSDFW5,6& 70 &5

C PROGRAMMING. Characters and Strings File Processing Exercise

today cs3157-fall2002-sklar-lect05 1

Standard C Library Functions

Scientific Programming in C V. Strings

A function is a named group of statements developed to solve a sub-problem and returns a value to other functions when it is called.

SWEN-250 Personal SE. Introduction to C

Structured programming

RMOS3 V3.50 Reference Manual Part III RMOS3. RMOS3 real-time operating system RMOS3 V3.50 Reference Manual Part III. About this manual...

Review: Constants. Modules and Interfaces. Modules. Clients, Interfaces, Implementations. Client. Interface. Implementation

Appendix A. ANSI Standard Header PART

cs3157: another C lecture (mon-21-feb-2005) C pre-processor (3).

Introduction to Programming Systems

Programming in C. Part 1: Introduction

CROSSWARE C8051NT ANSI C Compiler for Windows

Appendices E through H are PDF documents posted online at the book s Companion Website (located at

Chapter 8: Character & String. In this chapter, you ll learn about;

Index. backslash character, 19 backup, off-site, 11. abs, 72 abstraction, 63, 83, 133, 141, 174, 181 acos, 72

2.0. C/C++ Compiler and Library. Manual for ADSP-21xxx DSPs. Third Revision, September, Part Number

CS3157: Advanced Programming. Outline

BIL 104E Introduction to Scientific and Engineering Computing. Lecture 4

CSE2301. Functions. Functions and Compiler Directives

C Characters and Strings

Strings and Library Functions

Basic C Programming. Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island

Library Functions. General Questions

AVR Development Tools

C Programming. Unit 9. Manipulating Strings File Processing.

Computer Programming 5th Week loops (do-while, for), Arrays, array operations, C libraries

irmx C Library Reference Order Number:

SIMATIC. System Software for M7-300 and M7-400 System and Standard Functions, Volume 2. Table of Contents. C Runtime Library 1.

Systems Programming. 08. Standard I/O Library. Alexander Holupirek

CS167 Programming Assignment 1: Shell

Dr M Kasim A Jalil. Faculty of Mechanical Engineering UTM (source: Deitel Associates & Pearson)

Main Program. C Programming Notes. #include <stdio.h> main() { printf( Hello ); } Comments: /* comment */ //comment. Dr. Karne Towson University

Review Topics. Final Exam Review Slides

UNIT IV-2. The I/O library functions can be classified into two broad categories:

THE C STANDARD LIBRARY & MAKING YOUR OWN LIBRARY. ISA 563: Fundamentals of Systems Programming

Appendix A Developing a C Program on the UNIX system

6-1 (Function). (Function) !*+!"#!, Function Description Example. natural logarithm of x (base e) rounds x to smallest integer not less than x

C Review. SWE2004: Principles in Programming Spring 2014 Euiseong Seo

Course organization. Course introduction ( Week 1)

C Programs: Simple Statements and Expressions

Introduction. Introduction 1

8. Characters, Strings and Files

Contents. A Review of C language. Visual C Visual C++ 6.0

Introduction to string

Muntaser Abulafi Yacoub Sabatin Omar Qaraeen. C Data Types

C programming basics T3-1 -

C Functions. 5.2 Program Modules in C

Chapter 14 - Advanced C Topics

PROGRAMMAZIONE I A.A. 2017/2018

SYSTEM AND LIBRARY CALLS. UNIX Programming 2015 Fall by Euiseong Seo

Characters, c-strings, and the string Class. CS 1: Problem Solving & Program Design Using C++

RMOS3 V3.50 Reference Manual Part II RMOS3. RMOS3 real-time operating system RMOS3 V3.50 Reference Manual Part II. About this manual...

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIT-1

C Syntax Arrays and Loops Math Strings Structures Pointers File I/O. Final Review CS Prof. Jonathan Ventura. Prof. Jonathan Ventura Final Review

File System User API

CS240: Programming in C

Arrays, Strings, & Pointers

Accessing Files in C. Professor Hugh C. Lauer CS-2303, System Programming Concepts

Lecture 05 Pointers ctd..

Lecture 3. Review. CS 141 Lecture 3 By Ziad Kobti -Control Structures Examples -Built-in functions. Conditions: Loops: if( ) / else switch

CSE123. Program Design and Modular Programming Functions 1-1

C Functions. CS 2060 Week 4. Prof. Jonathan Ventura

Mode Meaning r Opens the file for reading. If the file doesn't exist, fopen() returns NULL.

INDEX. filename (command file) compiler switch 2-19

CSCI0330 Intro Computer Systems Doeppner. Project C-Shell. Due: October 31, 2018 at 11:59pm. 1 Introduction 2

Cheat Sheets of the C standard library

Input/Output and the Operating Systems

CSCI0330 Intro Computer Systems Doeppner. Project C-Shell. Due: November 1, 2017 at 11:59pm

Amsterdam Compiler Kit-ANSI C compiler compliance statements

Section 3: Library Functions

Assoc. Prof. Dr. Tansu FİLİK

Announcements. Strings and Pointers. Strings. Initializing Strings. Character I/O. Lab 4. Quiz. July 18, Special character arrays

1. We have a code sequence that is potentially executed twice.

Input / Output Functions

Computer Security. Robust and secure programming in C. Marius Minea. 12 October 2017

Chapter 10 Characters, Strings, and the string class

CS 261 Fall Mike Lam, Professor. Structs and I/O

Table of Contents. cppreference.com

CSci 4061 Introduction to Operating Systems. Input/Output: High-level

211: Computer Architecture Summer 2016

CSCI 171 Chapter Outlines

Functions. Systems Programming Concepts

Multiple Choice Questions ( 1 mark)

Texas Instruments Technical Questions and Answers

Transcription:

Library and function of C Dr. Donald Davendra Ph.D. Department of Computing Science, FEI VSB-TU Ostrava 1 / 30

Description of functions and macros and their standard libraries <assert.h> Macro used for debugging. <ctype.h> Working with characters. isalnum() digit or lowercase or uppercase isalpha () No. small and large letters iscntrl () control characters isdigit () digit isgraph () characters with graphic design islower () lower case isprint () printable characters ispunct () punctuation characters isspace () whitespace isupper () upper case isxdigit () hexadecimal digits tolower () converting uppercase letters to lowercase toupper() converting lowercase letters to uppercase 2 / 30

Math Libraries <math.h> sin (x) sin(x) cos(x) cos(x) tan(x) tan(x) asin (x) arcsin(x) acos(x) arccos(x) atan(x) arctan(x) atan2(x,y) arguments x, y sinh(x) sinh(x) cosh(x) cosh(x) tanh(x) tanh(x) exp(x) e x log(x) ln(x) log10(x) log(x) pow(x,y) x y sqrt (x) (x) ceil (x) y Z, y x, lower floor (x) y Z, y x, upper fabs ((x) x ldexp(x,n) x 2 n frexp (x, exp) x = m 2 e xp modf(x, n) x and n to the power of + fmod(x,n) Real remainder after dividing x/y 3 / 30

Error 1 Mathematical functions arguments and return valuesare of type double. 2 If an error the output is errno EDOM - outside the domain of input functions. ERANGE - Output HUGE VAL or 0.0. 4 / 30

i n t i double g, f ; p r i n t f ( % f \n, c e i l ( 3. 1 4 ) ) ; 4.000000 p r i n t f ( % f \n, f l o o r ( 3. 1 4 ) ) ; 3.000000 f = f r e x p ( 3. 1 4, &g ) ; p r i n t f ( % f x 2 %d\n, f, i ) ; 0.785000 x 2 2 f = modf ( 3. 1 4, &g ) p r i n t f ( % f + %f \n, g, f ) ; 3.000000 p r i n t f ( % f \n, fmod ( 3. 1 4, 2. 0 ) ) ; 1.140000 5 / 30

<locale. h>customizing the C locale. Problem character set, such as isupper (W) decimal point versus decimal comma ours, write the time and date, eg 10.6.1995 or 6-10-1995 or July 10, 1995. setlocale () adjusted localeconv() returns 6 / 30

<setjmp.h> Allowing long jumps. setjmp() prepare conditions for the return point longjmp() performs non-local jump. setjmp() saves and longjmp() restores the contents of registers required processor type is jmp buf. The principle of uniform response to the error with a subsequent restart of the program. #i n c l u d e <s t d i o. h> #i n c l u d e <s e t j m p. h> void chyba ( void ) ; / funkcni prototyp / jmp buf h l a v n i smycka ; / g l o b a l n i p r o m e n n a / i n t main ( v o i d ) { i n t i, j ; p r i n t f ( Zacatek programu \n ) ; h l a v n i smycka = s e t j m p ( ) ; } do { p r i n t f ( Z a d e j dve c i s l a : ) ; s c a n f ( %d% d,& i,& j ) ; i f ( j!=0) p r i n t f ( %d/%d=%d\ n, i, j, i / j ) ; e l s e chyba ( ) ; } w h i l e ( i! = 0 ) ; 7 / 30

v o i d chyba ( v o i d ) { p r i n t f ( Chyba n u l o v y d e l i t e l \n\n ) ; longjmp ( h l a v n i smycka, 1 ) ; } v o i d chyba ( jmp buf kam s e v r a t i t, c h a r c h y b o v ) { p r i n t f ( Chyba : %s\n, chybova z p r a v a ) ; longjmp (kam s e v r a t i t, 1 ) ; } 8 / 30

<signal. h> Signal Processing signal () new signal raise () transmitting the signal #i n c l u d e <s t d i o. h> #i n c l u d e <s i g n a l. h> #i n c l u d e <s e t j m p. h> #d e f i n e POCET POKUSU 2 #d e f i n e vynech 5000 / znak s e v y p i s u j e j e d n o u za v y n e c h / jmp buf n a v r a t ; c h a r v y p i s o v a n y znak = # ; v o i d o b s l u h a s i g n a l u ( i n t n e v y u z i t y parametr ) { s t a t i c i n t p o c e t v s t u p u = 0 ; p o c e t v s t u p u++; i f ( pocet vstupu <= pocet pokusu ) { p r i n t f ( \ n%d : A z r o v n a ne \n, p o c e t v s t u p u ) ; v y p i s o v a n y znak++; } longjmp ( n a v r a t, p o c e t v s t u p u ) ; } 9 / 30

i n t main ( v o i d ) { l o n g i n t i = 0 ; i n t p i d ; v o i d ( s t a r a adr ) ( i n t ) ; / z a v e d e n i nove a d r e s y o b s l u h y SIGQUIT / s t a r a adr = s i g n a l ( SIGQUIT, o b s l u h a s i g n a l u ) ; / z i s k a n i i d e n t i f i k a c n i h o c i s l a p r o c e s u / p i d=g e t p i d ( ) ; p r i n t f ( \ npid=%d \n\n, p i d ) ; p r i n t f ( Zadej t r i k r a t p r i k a z : k i l l %d%d \n, SIGQUIT, p i d ) ; } i f ( s e t j m p ( n a v r a t ) < p o c e t pokusu ) { w h i l e ( 1 ) { i f (++i % vynech == 0) { p u t c h a r ( v y p i s o v a n y znak ) ; f f l u s h ( s t d o u t ) ; } } } p r i n t f ( \ n Tak t e d y ano... \ n ) ; / o b n o v e n i puvodni a d r e s y o b s l u h y SIGQUIT / s i g n a l ( SIGQUIT, s t a r a adr ) ; 10 / 30

stdarg.h <stdarg.h> Working with a variable number of parameters. va start () sets the beginning va arg() gives another list item va end() ends with a list of work <stdio.h> functions for input and output. 11 / 30

stdio.h <stdio.h> - input and output fopen() Opens a file freopen() Reopen stream with different file or mode fflush () Flush stream fclose () Close file remove() Remove file rename() Rename file tmpfile () Open a temporary file tmpnam() Generate temporary filename setbuf () Set stream buffer setvbuf () Change stream buffering fprintf () Write formatted data to stream printf () Print formatted data to stdout sprintf () Write formatted data to string vfprintf () Write formatted data from variable argument list to stream 12 / 30

stdio.h vprintf () vsprintf () fscanf () scanf() sscanf () vfscanf () vsscanf () fgetc () getc() fputs () puts() getchar() Print formatted data from variable argument list to stdout Write formatted data from variable argument list to string Read formatted data from stream Read formatted data from stdin Read formatted data from string Read formatted data from file into variable argument list Read formatted data from string into variable argument list Get character from stream Get character from stream Write string to stream Write string to stdout Get character from stdin 13 / 30

stdlib.h <stdio.h> Function for file streams fread () Read block of data from file stream fwrite () Write block of data to file stream fseek () Reposition stream position indicator ftell () Get current position in file stream rewind() Set position of file stream to the beginning fgetpos() Get current position in file stream fsetpos () Set position indicator of file stream clearerr () Clear error indicators feof () Check end-of-file indicator ferror () Check error indicator perror () Print error message 14 / 30

stdlib.h <stdlib. h> Environment functions. atof () Convert string to double atoi () Convert string to integer atol () Convert string to long integer strtod () Convert string to double strtol () Convert string to long integer strtoul () Convert string to unsigned long integer rand() Generate random number srand() Initialize random number generator calloc () Allocate space for array in memory malloc() Allocate memory block realloc () Reallocate memory block free () Deallocate space in memory 15 / 30

stdlib.h <stdlib. h> Environment functions. abort() Abort current process exit () Terminate calling process atexit () Set function to be executed on exit system() Execute system command getnev() Get environment string bsearch() Binary search in array qsort () Sort elements of array abs() Absolute value labs () Absolute value of type long int div(x, y) x/y a x%y division of type int ldiv (x, y) x/y a x%y division of type long int 16 / 30

s= 1111111111111111; Dr. Donald l = 1 5 Davendra ; Ph.D. (Department of ComputingLibrary Science, andfei function VSB-TU of COstrava) 17 / 30 Converting string to number NOTE: ISO C does not define the reverse function, i.e. to convert a number to strings, eg itoa(). In these case it becomes necessary to use function sprintf(). #i n c l u d e <s t d i o. h> #i n c l u d e <s t r i n g. h> #i n c l u d e <s t d l i b. h> i n t main ( i n t argc, c h a r a r g v [ ] ) { char s, char chyba ; l o n g i n t l ; s = 1234567 ; l = a t o l ( s ) ; p r i n t f ( s=%s l =%l d \n, s, l ) ; // s =1234567 l =1234567 s = 1234567 ; l= s t r t o l ( s, &chyba, 1 0 ) ; p r i n t f ( s=%s l =%l d \n, s, l ) ; // s =1234567 l =1234567 s= f f f f ; l=s t r t o l ( s, &chyba, 1 6 ) ; p r i n t f ( s=%s l=%l d \n, s, l ) ; // s= f f f f l =65535 s= 0xFGFFF ; l=s t r t o l ( s, &chyba, 1 6 ) ; p r i n t f ( s=%s l=%l d \nchybny znak :% s \n, s, l, chyba ) ; // s=0xfgfff l =15

Generating Pseudorandom Number 1 int rand(void) Range < 0, RAND MAX ), where the values betweena acertain range can be obatined as. Example: rand() % number, or rand() % 20 #define real rand() ((double)rand()/(rand MAX+1.0)) 2 void srand(unsigned int start ) Initialize the random number generator rand() using the seed start. 18 / 30

Generating Pseudorandom Number #i n c l u d e <i ostream > #i n c l u d e <ctime> #i n c l u d e <s t d i o. h> i n t main ( i n t argc, char argv [ ] ) { i n t i ; s r a n d ( ( u n s i g n e d ) time (NULL ) ) ; p r i n t f ( \na range o f numbers from 0 to 99\n ) ; f o r ( i =0; i <10; i ++) p r i n t f ( %2d, rand ( ) % 1 0 0 ) ; } r e t u r n 0 ; 19 / 30

Function for dynamic parameter allocation Function type malloc(). Function to abort and return to Operating System Function abort() Aborts the current process, producing an abnormal program termination. The function raises the SIGABRT signal (as if raise(sigabrt) was called). This, if uncaught, causes the program to terminate returning a platform-dependent unsuccessful termination error code to the host environment. soubor core. Function atexit () The function pointed by func is automatically called without arguments when the program terminates normally. If more than one atexit function has been specified by different calls to this function, they are all executed in reverse order as a stack (i.e. the last function specified is the first to be executed at exit). 20 / 30

atexit() function #i n c l u d e <s t d i o. h> #i n c l u d e < s t d l i b. h> v o i d f n E x i t 1 ( v o i d ){ p r i n t f ( \ n E x i t f u n c t i o n 1. ) ; } v o i d f n E x i t 2 ( v o i d ){ p r i n t f ( \ n E x i t f u n c t i o n 2. ) ; } i n t main ( ) { } a t e x i t ( f n E x i t 1 ) ; a t e x i t ( f n E x i t 2 ) ; p r i n t f ( F i n i s h main f u n c t i o n. ) ; r e t u r n 0 ; 21 / 30

exit() function Terminates the process normally, performing the regular cleanup for terminating programs. Normal program termination performs the following (in the same order): Objects associated with the current thread with thread storage duration are destroyed. Objects with static storage duration are destroyed and functions registered with atexit are called (if an unhandled exception is thrown terminate is called). All C streams (open with functions in cstdio ) are closed (and flushed, if buffered), and all files created with tmpfile are removed. Control is returned to the host environment. 22 / 30

system() function Invokes the command processor to execute a command. #i n c l u d e <s t d i o. h> #i n c l u d e <s t d l i b. h> i n t main ( v o i d ){ p r i n t f ( Dir command i s i n v o k e d from a program \n ) system ( d i r. t x t ) ; r e t u r n 0 ; } 23 / 30

string.h library strcpy () strncpy () strcat () strncat () strcmp() strncmp() strchr () strrchr () strstr () strlen () strspn () strcspn () Copies string from source to destination Copies the first num characters Appends a copy of the string Appends the first num characters Compares two strings. Compares up to num characters of two strings. Returns a pointer to the first occurrence of character Returns a pointer to the last occurrence of character Returns a pointer to the first occurrence Returns the length of the string Returns the length of the initial portion of string Scans string for the first occurrence of any of the characters 24 / 30

string.h library strpbrk () strerror () strtok () memcpy() memmove() memcmp() memchr() memset() Returns a pointer to the first occurrence in string Interprets the value of errnum, generating a string A sequence of calls to this function split str into tokens Copies the values of num bytes from source Moves the values of num bytes from source Compares the first num bytes of the block of memory Searches within the first num bytes of the block of memory Sets the first num bytes of the block of memory 25 / 30

Memory Example #i n c l u d e <s t d i o. h> #i n c l u d e <s t r i n g. h> #d e f i n e d e l k a 1000 i n t main ( v o i d ) { i n t a [ d e l k a ], b [ d e l k a ] ; i n t i, p i ; memset ( ( v o i d )a, 0, ( s i z e t ) ( d e l k a s i z e o f ( i n t ) ) ) ; p r i n t f ( memset : a[%d ] = %d \n, d e l k a /2, a [ d e l k a / 2 ] ) ; a [ d e l k a /2]=1; p i =( i n t ) memchr ( ( v o i d ) a, 1, ( s i z e t ) ( d e l k a s i z e o f ( i n t ) ) ) ; p r i n t f ( memchr : i=%u \n, p i a ) ; memcpy ( ( v o i d )b, ( v o i d )a, ( s i z e t ) ( d e l k a s i z e o f ( i n t ) ) ) ; p r i n t f ( memcpy : b[%d]=%d \n, d e l k a /2, b [ d e l k a / 2 ] ) ; f o r ( i =1; i < 9 ; i ++) a [ i ]= i 1; f o r ( i =0 ; i < 9 ; i ++) p r i n t f ( a[%d]=%d, i, a [ i ] ) ; p r i n t f ( \nmemmove : \n ) ; memmove ( ( v o i d ) &a [ 0 ], ( v o i d ) &a [ 1 ], ( s i z e t )(9 s i z e o f ( i n t ) ) ) ; f o r ( i =0; i < 9 ; i ++) p r i n t f ( a[%d]=%d, i, a [ i ] ) ; r e t u r n 0 ; } 26 / 30

time.h library clock() Returns the number of clock ticks elapsed time() Get the current calendar time as a time t object. difftime () Calculates the difference in seconds mktime() Calendar time expressed in local time asctime() Readable version of calendar time ctime() Local time and date gmtime() Time as in GMY timezone localtime () Corresponding local time strftime () Structured form of time CLK TCK Clock ticks per second clock t usually long, for function clock(), time t usually long, used for function clock(), tm for the time structure 27 / 30

time.h header Structure of tm int tm sec seconds (0, 59) int tm min minutes (0, 59) int tm hour hours (0, 23) int tm mday days in month (1, 31) int tm mon months from January (0, 11) int tm year years since 1970 (0, ) int tm wdaz days from Monday (0, 6) int tm ydaz days from 1. January (0, 365) int tm isdst summer time 28 / 30

time.h example #i n c l u d e <i o s t r e a m> #i n c l u d e <s t d i o. h> #i n c l u d e <time. h> using namespace std ; i n t main ( i n t argc, c h a r a r g v [ ] ) { c l o c k t zac, konec ; zac =c l o c k ( ) ; konec = c l o c k ( ) ; p r i n t f ( program t r v a l : %f [ s e c ] \n, ( konec zac ) / ( d o u b l e ) CLOCKS PER SEC ) ; } r e t u r n 0 ; 29 / 30

time.h example #i n c l u d e <s t d i o. h> #i n c l u d e <time. h> #d e f i n e s h i f t 20000 i n t main ( v o i d ){ s t r u c t tm p pak ; t i m e t ted ; c h a r day []={ Mo, Tu, We, Th, Fr, Sa, Su }; time (& t e d ) ; p pak=l o c a l t i m e ( &t e d ) ; p pak >tm min += s h i f t ; mktime ( p pak ) ; p r i n t f ( I n %d i t w i l l be %s. \n, s h i f t, day [ p pak >tm wday ] ) ; } r e t u r n 0 ; 30 / 30