我有全局變量sigemptyset()的覆蓋下一個變量
int a[10];
struct sigaction act;
int b[10];
每當我打電話
sigemptyset(&act.sa_mask);
陣列a
是越來越損壞。我懷疑它是否是編譯器問題。我正在使用CodeSourcery mips-linux-gnu-gcc 4.5.2版。我編譯使用
mips-linux-gnu-gcc -c -g -muclibc -pedantic -Wno-declaration-after-statement -std=gnu99 -G 0 -mips2 -msoft-float -mno-memcpy -fomit-frame-pointer -pipe -Wall -Wstrict-prototypes signal/signal.c
mips-linux-gnu-gcc -G 0 -msoft-float -static -o signal signal.o
我完整的代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
int a[10];
struct sigaction act;
int b[10];
int main();
int main()
{
int i;
//initialize a and b
for(i = 0 ; i < 10;i++)
{
a[i]=1;b[i]=1;
}
sigemptyset(&act.sa_mask);
//print
for(i = 0 ; i < 10;i++)
{
printf("%d %d ",a[i],b[i]);
}
return 0;
}
我發現,使用編譯導致此問題的-muclibc
選項。
您能否包含具有此問題的最小*完整*示例? – NPE
是的,我做了必要的修改 – user919082
也許你的頭文件是用於其他庫(例如glibc或newlib),而不是uClibc,或者你已經用glibc或newlib鏈接,但是使用的是uClibc頭文件。 – nos