Skip to content

A custom printf team project, ALX Software Engineering

Notifications You must be signed in to change notification settings

ugoMusk/custom_printf_arch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

0x11. C - printf

image This project is the first team project we are working on as an ALX SE cohort 9 students.

_printf

_printf is the C language function to do format-ted printing.

Project Requirements

Allowed editors:

vi, vim, emacs

All your files will be compiled on Ubuntu 20.04 LTS using gcc, using the options:

-Wall -Werror -Wextra -pedantic -std=gnu89

All your files should end with a new line

A README.md file, at the root of the folder of the project is mandatory

Your code should use the Betty style. It will be checked using betty-style.pl and betty-doc.pl

You are not allowed to use global variables

No more than 5 functions per file

In the following examples, the main.c files are shown as examples. You can use them to test your functions, but you don’t have to push them to your repo (if you do we won’t take them into account). We will use our own main.c files at compilation. Our main.c files might be different from the one shown in the examples

The prototypes of all your functions should be included in your header file called main.h

Don’t forget to push your header file All your header files should be include guarded

0x11. C - printf

  • Writing our own printf function, this is a project done under ALX Low Level Programming. A collaboration project by Ugobo ThankGod and Paul Sabonde.

Resource

Description

  • The function _printf writes output to stdout. The function writes under the control of a format string that specifies how subsequent arguments (accessed via the variable-length argument facilities of standard library stdarg) are converted for output.

  • Prototype: int _printf(const char *format, ...);

Return

  • Upon success, _printf returns the number of characters printed (excluding the terminating null byte used to end output to strings). If an output error is encountered, the function returns -1.

Format of the Argument String

  • The format string argument is a constant character string composed of zero or more directives: ordinary characters (apart from %) which are copied unchanged to the output stream; and conversion specifications, each of which results in fetching zero or more subsequent arguments.
  • Conversion specification is introduced by the character % and ends with a conversion specifier (which in whole make up the format specifier.)

General Requirements

  • All your files will be compiled on Ubuntu 20.04 LTS using gcc, using the options -Wall -Werror -Wextra -pedantic -std=gnu89
  • All your files should end with a new line.
  • No more than 5 functions per file.
  • You are not allowed to use global variables.
  • The prototypes of all your functions should be included in your header file called holberton.h
  • All your header files should be include guarded.

Authorized functions and macros

  • write (man 2 write)
  • malloc (man 3 malloc)
  • free (man 3 free)
  • va_start (man 3 va_start)
  • va_end (man 3 va_end)
  • va_copy (man 3 va_copy)
  • va_arg (man 3 va_arg)

Github

  • There should be one project repository per group. If you clone/fork/whatever a project repository with the same name before the second deadline, you risk a 0% score.

Compilation

  • The code can be compiled like this:
    gcc -Wall -Werror -Wextra -pedantic -std=gnu89 test/main.c *.c -o print
  • All test files will be in the test directory.

Authors

Tasks

  1. I'm not going anywhere. You can print that wherever you want to. I'm here and I'm a Spur for life : A function that produces output according to a format.

    • Prototype: int _printf(const char *format, ...);
    • Returns: the number of characters printed (excluding the null byte used to end output to strings)
    • write output to stdout, the standard output stream
    • format is a character string. The format string is composed of zero or more directives. See man 3 printf for more detail. You need to handle the following conversion specifiers:
      • c
      • s
      • %
    • You don’t have to reproduce the buffer handling of the C library printf function.
    • You don’t have to handle the flag characters.
    • You don’t have to handle field width.
    • You don’t have to handle precision.
    • You don’t have to handle the length modifiers.
  2. Education is when you read the fine print. Experience is what you get if you don't : Handle the following conversion specifiers:

    • d
    • i
    • You don’t have to handle the flag characters.
    • You don’t have to handle field width.
    • You don’t have to handle precision.
    • You don’t have to handle the length modifiers.
  3. Just because it's in print doesn't mean it's the gospel : Create a man page for your function.

    • How to read the man page: man ./man_3_printf

End

About

A custom printf team project, ALX Software Engineering

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages