The header file <pgmspace.h> defines a number of functions written to be compatible with the corresponding file in IAR’s Embedded Workbench for AVR products EWA90 and EWAVR.
IAR's header file uses the suffic “_P” to indicate that constant strings are stored in program (code) space rather than data space. CrossWorks for AVR uses the suffix “_c” to indicate the same, so this header file defines macros ending in “_P” that expand to the equivalent CrossWorks for AVR function names. For instance, this header file defines the IAR-compatible function named printf_P like this:
#define printf_P printf_c
The following are the macros which are defined by this header file:
| Formatted input functions | |
| scanf_P | Read formatted text from standard input |
| sscanf_P | Read formatted text from a string |
| vscanf_P | Read formatted text from standard input using a va_list argument |
| vsscanf_P | Read formatted text from a string using a va_list argument |
| Formatted output functions | |
| printf_P | Write formatted text to standard output |
| snprintf_P | Write formatted text to a string with truncation |
| sprintf_P | Write formatted text to a string |
| vprintf_P | Write formatted text to standard output using a va_list argument |
| vsnprintf_P | Write formatted text to a string with truncation using a va_list argument |
| vsprintf_P | Write formatted text to a string using a va_list argument |
| Copying functions | |
| memcpy_P | Copy memory |
| strcpy_P | Copy string |
| strncpy_P | Copy string up to a maximum length |
| Concatenation functions | |
| strcat_P | Concatenate strings |
| strncat_P | Concatenate string up to a maximum length |
| Comparison functions | |
| memcmp_P | Compare memory contents |
| strcmp_P | Compare strings |
| strncmp_P | Compare strings up to a maximum length |
| Miscellaneous functions | |
| puts_P | Write a string to standard output |
| strlen_P | Calculate length of string |