見鬼了!!!打到乙隻鬼!!!

2021-09-30 03:30:27 字數 754 閱讀 5081

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軟體之上構建的,並...

我們僱傭了乙隻大猴子

我們 僱傭 了乙隻大猴子,只為 搞破壞 不開玩笑。這只猴子是用來做什麼的?從程式設計師的視角來看,提高系統穩定性的方法無外乎三種 通過各種技術手段,例如在容器和排程 微服務 訊息 軟負載和配置中心等緯度提高系統和架構的健壯性 提公升監控的廣度和深度,生產中一旦出現問題,能快速定位,給出解決方案 生產...