When I was writing twitter console application, I faced a problem with C function gethostbyname(). Twitter API offers to connect to https://api.twitter.com/oauth2/token , but when I tried to get IP by that function, it returned NULL. Curl resolves URL fine, and I don't think that's there is problem with DNS. Connected code is same as I've tried that doesn't work properly too.
P.S. Maybe my problem is very obvious, but I wasted at least 7 hour without any changes in code, just trying to find an answer.
#include <stdio.h>
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(int argc, char *argv[])
{
    int i;
    struct hostent *he;
    struct in_addr **addr_list;
    if (argc != 2) {
        fprintf(stderr,"usage: ghbn hostname\n");
        return 1;
    }
    if ((he = gethostbyname(argv[1])) == NULL) {  // get the host info
        herror("gethostbyname");
        return 2;
    }
    // print information about this host:
    printf("Official name is: %s\n", he->h_name);
    printf("    IP addresses: ");
    addr_list = (struct in_addr **)he->h_addr_list;
    for(i = 0; addr_list[i] != NULL; i++) {
        printf("%s ", inet_ntoa(*addr_list[i]));
    }
    printf("\n");
    return 0;
}