Bonjour, n'étant pas un foudre de guerre en C, je demande donc un peu d'aide ici d'autant plus que je ne pratique pas souvent le C...

SYNOPSIS DU PROBLEME :
Voilà dans le but de me faciliter un peu la tache et surtout à but éducatif, je cherche à me faire une sorte de petite bibliothèque d'abstraction pour les sockets sous linux.

En regardant de plus près dans sys/socket.h j'ai vu que la fonction socket() prend des int comme argument pour le "domaine" (PF_LOCAL ou PF_INET) et pour le type (SOCK_DGRAM ou SOCK_STREAM)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
int socket(int domain, int type, int protocol);
Hors j'aimerai connaitre ces valeurs pour me débloquer dans ma petite fonction perso, ou bien si quelqu'un aurait un suggestion pour résoudre mon problème que je vais exposer ci-dessous après avoir mis les sources.

main.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#include "sockets.h"
#include "sockets.c"
 
int main(int argc, char *argv[])
{
    int sock;
 
    sock = make_sock(2, 2);
    if(sock == 0)
    {
        printf("YES");
    }
    else
    {
        printf("BAD");
    }
    return 0;
}
sockets.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#ifndef SOCKETS_H_INCLUDED
#define SOCKETS_H_INCLUDED
 
int make_sock(int argi, int argj);
 
#endif // SOCKETS_H_INCLUDED
sockets.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <sys/types.h>
#include <sys/socket.h>
 
typedef int SOCK;
 
int make_sock(int argi, int argj)
{
    SOCK sock;
    char type1[8 + 1], type2[11 + 1];
 
     /* LOCAL OR INET? */
    switch(argi)
    {
        case 1: strcpy(type1, "PF_LOCAL"); break;
        case 2: strcpy(type1, "PF_INET"); break;
    }
 
    /* DGRAM OR STREAM? */
    switch(argj)
    {
        case 1: strcpy(type2, "SOCK_DGRAM"); break;
        case 2: strcpy(type2, "SOCK_STREAM"); break;
    }
 
    sock = socket(type1, type2, 0);
 
    if(sock != -1)
    {
        return 0; // Socket created successfully
    }
    else
    {
        return 1; // Socket not created
    }
}
Voila donc dans les switch/case j'essai de renseigner les valeur PF_* et SOCK_*, mais ca ne fonctionne pas, d'un coté comme je l'ai dit le C je pratique peu, ensuite je demandais donc vu que selon socket() c est des int que l'on doit passer si quelqu'un peut m'indiquer ou trouver la reponse, car evidement si pour PF_INET et SOCK_STREAM par exemple je pouvais passer cela

Code : Sélectionner tout - Visualiser dans une fenêtre à part
sock = socket(1, 1, 0);
ça me faciliterai GRANDEMENT la tache...

Voila la sortie du compilo :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
/home/david/Projets/BetaTest/sockets.c||In function ‘make_sock’:|
/home/david/Projets/BetaTest/sockets.c|27|attention : passing argument 1 of ‘socket’ makes integer from pointer without a cast|
/home/david/Projets/BetaTest/sockets.c|27|attention : passing argument 2 of ‘socket’ makes integer from pointer without a cast|
||=== Build finished: 2 errors, 0 warnings ===|
Voila je vous remercie donc d'avance