当前位置: 技术问答>linux和unix
linux编程调试问题
来源: 互联网 发布时间:2015-02-19
本文导语: 请教了: 我在linux下写了几个小程序,奇怪的是只要用到系统调用(如ftime(),select() poll()等函数)时,调试时总是给出segmentation fault.死机或退出。用gdb调试时给出的错误信息是:Program received signal SIGSEGV ,segmenta...
请教了:
我在linux下写了几个小程序,奇怪的是只要用到系统调用(如ftime(),select() poll()等函数)时,调试时总是给出segmentation fault.死机或退出。用gdb调试时给出的错误信息是:Program received signal SIGSEGV ,segmentation fault.
我开始是怀疑别的系统函数或自己的代码有问题,后来发现把系统调用的东西删掉(如fd_set变量,select()函数的相应代码),程序没有上述错误。由于对linux 编程刚起步
,很不了解这些信号。我想使我的程序在有那些系统调用时能正常运行,怎么解决?屏蔽SIGSEGV信号?还是我的程序的确有问题?附源程序:
int OpenTCPSocket( ushort port )
/* ---------------------------------------------------- **
* Open port 139 for listening.
* Note: this requires root privilege.
* ---------------------------------------------------- **
*/
{
int result;
int sock;
struct sockaddr_in sox;
/* Create the socket. */
sock = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP );
if( sock
我在linux下写了几个小程序,奇怪的是只要用到系统调用(如ftime(),select() poll()等函数)时,调试时总是给出segmentation fault.死机或退出。用gdb调试时给出的错误信息是:Program received signal SIGSEGV ,segmentation fault.
我开始是怀疑别的系统函数或自己的代码有问题,后来发现把系统调用的东西删掉(如fd_set变量,select()函数的相应代码),程序没有上述错误。由于对linux 编程刚起步
,很不了解这些信号。我想使我的程序在有那些系统调用时能正常运行,怎么解决?屏蔽SIGSEGV信号?还是我的程序的确有问题?附源程序:
int OpenTCPSocket( ushort port )
/* ---------------------------------------------------- **
* Open port 139 for listening.
* Note: this requires root privilege.
* ---------------------------------------------------- **
*/
{
int result;
int sock;
struct sockaddr_in sox;
/* Create the socket. */
sock = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP );
if( sock