www.ghoon.net
Home
Tag
MediaLog
LocationLog
Guestbook
Admin
Write
강지훈
카테고리
분류 전체보기
(15)
DesingPattern
(0)
Linux
(5)
DirectFB
(1)
dbus
(0)
cURL
(1)
Anytalk
(2)
태그목록
fb0
iGoogle
framebuffer
우분투글꼴
메소드포인터
가젯
공지사항
최근에 올라온 글
VIM에서 현재 Line, Column...
내 vimrc setting..
Alticast tru2way EPGs.
간단한 가변인자 샘플코드.
Eclipse에서 괄호 짝 찾아...
최근에 달린 댓글
좋은 정보 잘 봤어요. 구글에...
꾸로gguro
06/04
최근에 받은 트랙백
링크
fomuon's blog.
hoyeol's blog.
글 보관함
2010/06
(1)
2010/03
(1)
2009/05
(1)
2009/01
(1)
2008/12
(2)
Yesterday
5
Today
1
Total
3,768
가입하기
RSS FEED
달력
11
2008
이전
다음
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
'2008/11'에 해당되는 글 3건
2008/11/26
libiconv로 euc-kr문자열 UTF-8으로 변환하는 함수 구현.
2008/11/11
curl URL redirection example
2008/11/10
[Linux C API]mac address가져오기.
libiconv로 euc-kr문자열 UTF-8으로 변환하는 함수 구현.
Linux
2008/11/26 09:38
/** * euckrToUtf8() * * @author Ji-hoon Kang(luvflo@gmail.com) * @date 2008-11-26 * * @description * iconv를 사용하여 EUC-KR 문자열을 UTF-8으로 변환합니다. * */ string XpgUtil::euckrToUtf8(const char* szBuff) { string retv; char* outbuf = NULL; char* out = NULL; size_t ileft = strlen(szBuff); size_t oleft = ileft * 2; //TODO: 임시로.. 확인 후 수정요망.. out = outbuf = (char*)calloc(1, oleft + 1); iconv_t cd = iconv_open("UTF-8", "EUC-KR"); if(cd < 0) { perror(":"); if(out){ free(out); out=outbuf=NULL; } return retv; } int err = iconv(cd, (char**)&szBuff, &ileft, &outbuf, &oleft); iconv_close(cd); *outbuf = 0; if(err >= 0) retv.assign(out); if(out){ free(out); out=outbuf=NULL; } return retv; }
Posted by
강지훈
트랙백
0
|
댓글
0
Trackback :
http://www.ghoon.net/trackback/13
curl URL redirection example
Linux/cURL
2008/11/11 10:27
/* * curl_redirection example * * @date 2008.11.10 * @author Kang, Ji-Hoon (kang@ghoon.net) */ #include
#include
#include
typedef struct FtpFile { char filename[FILENAME_MAX]; FILE* stream; } FtpFile; static size_t header_callback(void* ptr, size_t size, size_t nmemb, void* stream) { char* buff = (char*) ptr; const char* content_disposition = "Content-Disposition: attachment;" "filename="; if (strstr(buff, content_disposition)) { FtpFile* pFileInfo = (FtpFile*) stream; memset(pFileInfo->filename, 0, sizeof(pFileInfo->filename)); memcpy(pFileInfo->filename, buff+strlen(content_disposition), strlen(buff) - strlen(content_disposition) - 2); printf("catched filename : %s length : %d\n", pFileInfo->filename, strlen(pFileInfo->filename)); } return size * nmemb; } static size_t write_callback(void* buffer, size_t size, size_t nmemb, void* stream) { FtpFile* out = (FtpFile*) stream; if ((out && !out->stream) && out->filename) { out->stream = fopen(out->filename, "wb"); if (!out->stream) { return -1; } } return fwrite(buffer, size, nmemb, out->stream); } /** * @param [in] hCurl - curl handle * @param [in] sURL - * @param [in] sLocalDir - * @return 'CURLE_OK' ok, otherwise failure. */ static CURLcode download(CURL* hCurl, const char* sURL, const char* sLocalDir) { FtpFile localfile; memset(&localfile, 0, sizeof(FtpFile)); curl_easy_setopt(hCurl, CURLOPT_HEADERFUNCTION, header_callback); curl_easy_setopt(hCurl, CURLOPT_HEADERDATA, &localfile); curl_easy_setopt(hCurl, CURLOPT_URL, sURL); curl_easy_setopt(hCurl, CURLOPT_WRITEFUNCTION, write_callback); curl_easy_setopt(hCurl, CURLOPT_WRITEDATA, &localfile); curl_easy_setopt(hCurl, CURLOPT_VERBOSE, 1); CURLcode res = curl_easy_perform(hCurl); if (localfile.stream) { fclose(localfile.stream); } return res; } int main(int argc, char** argv) { const char* sURL = "http://fmov.pann.com/mmediaDownload.jsp?" "FileID=12992569"; const char* sLocalDir = "/home/david/Download"; CURL* hCurl = NULL; curl_global_init(CURL_GLOBAL_ALL); hCurl = curl_easy_init(); download(hCurl, sURL, sLocalDir); curl_easy_cleanup(hCurl); curl_global_cleanup(); return 0; }
Posted by
강지훈
트랙백
0
|
댓글
0
Trackback :
http://www.ghoon.net/trackback/10
[Linux C API]mac address가져오기.
Linux
2008/11/10 09:43
#include
#include
#include
#include
#include
#include
/** * Gets mac address with specified interface name. * * @param szInfName [in] interface name. * @param szMAC [out] retrieved mac address. * @param nLen [out] size of mac address string. * @return 0 is success, otherwise failure. * * @author Kang, Ji-Hoon (kang@ghoon.com) * @date 2008-11-07 */ int getMacAddr(const char* szInfName, char* szMac, int* nLen) { char* mac_addr = NULL; struct ifreq ifrq; int fd = socket(AF_INET, SOCK_DGRAM, 0); struct sockaddr *sa = NULL; memset(&ifrq, 0, sizeof(ifrq)); strcpy(ifrq.ifr_name , szInfName); if (ioctl(fd, SIOCGIFHWADDR, &ifrq) < 0) { close(fd); fprintf(stderr, "%s:%d> ERROR getMacAddr", __FILE__, __LINE__); return 1; } sa = &(ifrq.ifr_hwaddr); mac_addr = (char*) ether_ntoa((struct ether_addr*) sa->sa_data ); if (mac_addr == NULL) { return 1; } memset(szMac, 0, sizeof(szMac)); sprintf(szMac, "%s", mac_addr); *nLen = strlen(szMac); close(fd); return 0; } int main(int argc, char** argv) { char sMacAddr[64] = {0,}; int nLength = 0; if (getMacAddr(sMacAddr, &nLength) != 0) { return 1; } printf("MacAddr : %s\nString length : %d\n", sMacAddr, nLength); return 0; }
Posted by
강지훈
트랙백
0
|
댓글
0
Trackback :
http://www.ghoon.net/trackback/9
이전
1
다음