Uma chave nada mais é do que um valor inteiro longo. Ela é utilizada para identificar uma estrutura de dados que vai ser referenciada por um programa. Existe uma função que permite a criação de chaves de maneira única no sistema, denominada ftok().
#include <sys/types.h> #include <sys/ipc.h> key_t ftok(char *path, char proj)
Valor de retorno: valor de uma chave única para todo o sistema ou -1 em caso de erro.
A função ftok() usa o nome do arquivo apontado por path, que é único no sistema, como uma cadeia de caracteres, e o combina com um identificador proj para gerar uma chave do tipo key_t no sistema IPC.
Também é possível criar funções gerando chaves utilizando-se parâmetros associados ao usuário, como seu número de identificação (uid) e seu número de grupo (gid). Por exemplo, com a função:
#define KEY(n) ((getuid() % 100) * 100 + getgid() + n )