為什么strncpy不為null終止?strncpy()據(jù)說可以防止緩沖區(qū)溢出。但是如果它在沒有null終止的情況下防止溢出,那么隨后的字符串操作將會溢出。所以為了防止這種情況,我發(fā)現(xiàn)自己在做:strncpy( dest, src, LEN );dest[LEN - 1] = '\0';man strncpy 得到:strncpy()函數(shù)類似,只是復(fù)制了不超過n個字節(jié)的src。因此,如果src的前n個字節(jié)中沒有空字節(jié),則結(jié)果將不會以空值終止。沒有null終止看似無辜的東西,如: printf( "FOO: %s\n", dest );......可能會崩潰是否有更好,更安全的替代品strncpy()?
為什么strncpy不為null終止?
繁華開滿天機(jī)
2019-08-19 15:22:42