- 論壇徽章:
- 0
|
看axel的源代碼,里面有個(gè) http_decode()函數(shù),用來(lái)把 "%20"替換回空格的,
其中定義了個(gè)局部變量k,后面用 sscanf() 函數(shù)來(lái)保存值到k中,我對(duì)這里有點(diǎn)疑惑的是,
http_decode() 函數(shù)按道理是解碼主調(diào)函數(shù)傳遞過(guò)來(lái)的字符串的,實(shí)際上,使用axel的時(shí)候,
應(yīng)該是:
$ axel http://www.example.com/xxx.mkv
這樣的,中間么有再讓自己輸入的了,那么下面那個(gè)sscanf() 要求的輸入k從哪里得來(lái)的?
怎么會(huì)冒出來(lái)一個(gè)這樣的要求輸入的?
代碼如下- void http_decode( char *s )
- {
- char t[MAX_STRING];
- int i, j, k;
-
- for( i = j = 0; s[i]; i ++, j ++ )
- {
- t[j] = s[i];
- if( s[i] == '%' )
- if( sscanf( s + i + 1, "%2x", &k ) )
- {
- t[j] = k;
- i += 2;
- }
- }
- t[j] = 0;
-
- strcpy( s, t );
- }
復(fù)制代碼 |
|