0% found this document useful (0 votes)
182 views1 page

C Lan Cheat

This document provides a summary of C programming concepts including: - How to read files character by character and line by line - How to use flexible array members and dynamically allocate memory for them - Common <stdio.h> and <ctype.h> functions - How to initialize, connect, send/receive from sockets - Predefined C macros and reserved identifiers - When casts are appropriate in C programming

Uploaded by

Krishna Foru
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
182 views1 page

C Lan Cheat

This document provides a summary of C programming concepts including: - How to read files character by character and line by line - How to use flexible array members and dynamically allocate memory for them - Common <stdio.h> and <ctype.h> functions - How to initialize, connect, send/receive from sockets - Predefined C macros and reserved identifiers - When casts are appropriate in C programming

Uploaded by

Krishna Foru
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

C Cheat Sheet

by pmg (pmg) via cheatography.com/596/cs/255/


read file char-by-char #include <stdio.h> dynamic memory Remember to #include <stdlib.h> Allocate FILE *h; int ch; h = fopen("filename", "rb"); /* error checking missing */ while ((ch = fgetc(h)) != EOF) { /* deal with ch */ } /* if needed test why last read failed */ if (feof(h) || ferror(h)) /* whatever */; fclose(h); You can replace fgetc(h) with getchar() to read from standard input. read file line-by-line #include <stdio.h> FILE *h; char line[100]; h = fopen("filename", "rb"); /* error checking missing */ while (fgets(line, sizeof line, h)) { /* deal with line */ } /* if needed test why last read failed */ if (feof(h) || ferror(h)) /* whatever */; fclose(h); Flexible Array Member How to declare a FAM? By using empty brackets as the last member of a struct. How to define the size for an object containg a FAM? ptr = malloc(sizeof *ptr + sizeof (FAMTYPE[wanted size])); Do not use FAMs! They were known as struct hack before C99 and, now as then, feel like a dirty hack. <stdio.h> functions with a FILE pointer at the end char *fgets(char *, int, FILE *); int fputc(int, FILE *); int fputs(char *, FILE *); size_t fread(void *, size_t, size_t, FILE *); FILE *freopen(char *, char *, FILE *); size_t fwrite(void *, size_t, size_t, FILE *); int ungetc(int, FILE *); Cheatographer pmg (pmg) cheatography.com/pmg/ initialize with getaddrinfo() loop to find and connect a socket socket() connect() if needed: close() after loop: freeaddrinfo() getpeername(), getsockname() send() or recv() or sendto() or recvfrom() close() <ctype.h> %p printf specifiers len = strlen(data); if (len && data[len - 1] == '\\n') data[--len] = 0; If len is known in advance, do not call strlen(). You can pass the updated len to the caller. Casting
Casts in C are almost always wrong. When are they right?

Predefined C macros __FILE__ "filename.c" or something like that

malloc calloc

ptr = malloc(n * sizeof *ptr); ptr = calloc(n, sizeof *ptr);

__LINE__ 42 or another integer __STDC__ 1 __STDC_VERSION__ undefined for C89; 199901L for C99; 201112L for C11 __DATE__

Change size realloc newsize = n * sizeof *ptr; tmp = realloc(ptr, newsize); if (tmp) ptr = tmp; else /* ptr is still valid */; Release free free(ptr);

"Feb 17 2012" for example __TIME__

remove trailing newline How do I remove the final newline in a string?

"15:16:17" for example __func__ "main" for example __STDC_HOSTED__ 0 or 1 Reserved identifiers Reserved for all uses anywhere _[A-Z]*; __* is[a-z]*; to[a-z]* E[A-Z]*; E[0-9]* SIG[A-Z]*; SIG_[A-Z]* *_t

isupper((unsigned char)ch) printf("%p", (void*)ptr)

LC_[A-Z]*

str[a-z]*; mem[a-z]*; wcs[a-z]* all math functions possibly followed by f or l When #include <limits.h> is present *_MAX When #include <signal.h> is present

Specifically a cast to the return value of malloc() is a definite sign the code author either didn't know what he was doing or didn't choose a good language for the implementation of whatever he's doing. (BSD) sockets Headers needed #include <arpa/inet.h> #include <netdb.h> #include <string.h> #include <sys/socket.h> #include <unistd.h>

SA_*

sa_*

POSIX adds a few other identifiers <dirent.h> <fcntl.h> <grp.h> <pwd.h> <sys/stat.h> <sys/times.h> <termios.h> d_* l_*; F_*; O_*; S_* gr_* pw_* st_*; S_* tms_* C_*; V_*; I_*; O_*; TC*; B[0-9]*

Cheat Sheet This cheat sheet was published on 17th February, 2012 and was last updated on 17th February, 2012.

Sponsor FeedbackFair , increase your conversion rate today! Try it free! http://www.FeedbackFair.com

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy