Skip to content
This repository has been archived by the owner on Sep 15, 2018. It is now read-only.
/ CmdKeys-In-C Public archive

Обработчик аргументов командной строки для языка C.

License

Notifications You must be signed in to change notification settings

kirpichik/CmdKeys-In-C

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Command Line Keys in C language

Краткое описание

Это небольшая библиотека для обработки аргументов командной строки для язка C.

Как использовать

  1. Включите в свой проект файлы cmdkeys.h, cmdkeys.c.
  2. В том месте, где вы хотите получить удобный способ работы с аргументами, например в функции main, вызовите функцию parseKeys, которая вернет вам указатель на структуру cmdkeys.
  3. Используйте функции для работы с этой структурой: hasKey, equalKeyValue, getKeyValue. Или пройдитесь по всем аргументам и ключам напрямую из структуры массива. Ключи находятся в поле keys(размер массива в keysArrSize), а глобальные аргументы в globalArgs(размер массива в globalArrSize).
  4. После использования этой структуры, передайте ее указатель в функцию freeCmdKeysStorage, чтобы освободить выделенную под нее память.

Принцип обработки аргументов

Ключи

Имя ключа

Именем ключа считается аргумент, начинающийся с символа дефиса. Пример:

-test

Имя данного ключа: test

Аргумент ключа

Значением(аргументов) ключа считается аргумент, который идет после имени ключа. Пример:

-test value

Имя данного ключа: test Значение данного ключа: value

Глобальные аргументы

Глобальным аргументом считаются все аргументы, которые не относятся к ключам и их значениям. Пример:

arg1 -test value arg2 arg3

Глобальные аргументы здесь: arg1, arg2, arg3

Особые случаи

-test1 -test2 value

В этом случае test1 считается ключом без аргументов(в структуре keyvalue поле value == NULL). Обычно обозначает флаг.

Пример использования

Готовый пример использования можно посмотреть в файле main.c

Releases

No releases published

Packages

No packages published

Languages