printf("duration:%d s, file size:%d bytes, overall bit rate:%d kb/s/n",
ctx->duration/1000000,
ctx->file_size,
ctx->bit_rate/1000);
printf("duration:%d s/n", ctx->duration/1000000);
printf("file size:%d bytes/n", ctx->file_size);
printf("overall bit rate:%d kb/s/n", ctx->bit_rate/1000);
結果:duration:18 s, file size:0 bytes, overall bit rate:303107 kb/s
duration:18 s
file size:303107 bytes
overall bit rate:128 kb/s
瘋狂了!這是咋回事兒???!!!
問題就出在ctx本身上,它是乙個這樣的結構體:
struct ctxctx;
對duration和file_size的格式化輸出正確的情況應該用%lld(64位系統使用%ld)。若用%d輸出,那麼第一次輸出的是duration的低32位(小端終結),第二次輸出的是duration的高32位(0)。第三次輸出的是第二個引數file_size的低32位,於是,一句表面上語法無誤的三個引數的printf實際上只輸出了1個半引數的值。
我們僱傭了乙隻大猴子
我們 僱傭 了乙隻大猴子,只為 搞破壞 不開玩笑。從程式設計師的視角來看,提高系統穩定性的方法無外乎三種 這只猴子就是我們雇來做破壞,進行故障演練的隊友。瘋起來,我們連自己都打 netflix的流 服務最初由netflix工程師在microsoft軟體之上構建的,並位於垂直擴充套件的伺服器機架中。然...
我們僱傭了乙隻大猴子
為什麼80 的碼農都做不了架構師?我們 僱傭 了乙隻大猴子,只為 搞破壞 不開玩笑。從程式設計師的視角來看,提高系統穩定性的方法無外乎三種 這只猴子就是我們雇來做破壞,進行故障演練的隊友。瘋起來,我們連自己都打 netflix的流 服務最初由netflix工程師在microsoft軟體之上構建的,並...
我們僱傭了乙隻大猴子
我們 僱傭 了乙隻大猴子,只為 搞破壞 不開玩笑。這只猴子是用來做什麼的?從程式設計師的視角來看,提高系統穩定性的方法無外乎三種 通過各種技術手段,例如在容器和排程 微服務 訊息 軟負載和配置中心等緯度提高系統和架構的健壯性 提公升監控的廣度和深度,生產中一旦出現問題,能快速定位,給出解決方案 生產...