Следующая программа поражает ошибку сегментации, и я не могу понять, в чем проблема.Ошибка сегментации при использовании vfprintf()
1 #include<stdio.h>
2 #include<stdarg.h>
3 void writeformat(FILE*,char*, ...);
4 int main()
5 {
6 FILE *fp;
7 fp=fopen("file1.txt","w");
8 writeformat(fp,"/modules.php?name=Top&querylang=%20WHERE%201=2%20ALL%20SELECT%201,pwd,1,1%20FROM%20nuke_authors/*");
9 fclose(fp);
10 return(0);
11 }
12
13 void writeformat(FILE *stream,char *format, ...)
14 {
15 va_list args;
16 va_start(args,format);
17 vfprintf(stream,format,args);
18 va_end(args);
19 }
Я пытался в БГД, и он говорит мне, что проблема заключается в vfprintf()
:
(gdb) run
Starting program: /ws/anaganes-sjc/junk
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x2aaaaaaab000
Program received signal SIGSEGV, Segmentation fault.
0x0000003c44c7fb30 in wcslen() from /lib64/libc.so.6
(gdb) bt
#0 0x0000003c44c7fb30 in wcslen() from /lib64/libc.so.6
#1 0x0000003c44c80b27 in wcsrtombs() from /lib64/libc.so.6
#2 0x0000003c44c464b2 in vfprintf() from /lib64/libc.so.6
#3 0x0000000000400649 in writeformat (stream=0x601010, format=0x400758 "/modules.php?name=Top&querylang=%20WHERE%201=2%20ALL%20SELECT%201,pwd,1,1%20FROM%20nuke_authors/*") at junk.c:20
#4 0x0000000000400556 in main() at junk.c:9
Можете ли вы помочь мне найти проблему?
[в риторическом режиме] вы проверяли успех 'fopen()'? –
Вы можете использовать 'writeformat (fp,"% s "," /modules.php?name = ..... '. – alk