开发者

Bus Error on fopen()?

开发者 https://www.devze.com 2023-03-25 04:28 出处:网络
I am using To开发者_StackOverflowtalview to debug some code, and it is stopping with a Bus Error. What is this, and how do I fix it? here is the code snip

I am using To开发者_StackOverflowtalview to debug some code, and it is stopping with a Bus Error.

What is this, and how do I fix it? here is the code snip

In my main:

    char *infilename = "/home/dcole/Images/lena1024s.jpg";

    /* Try opening a jpeg*/
    if( read_jpeg_file( infilename ) > 0 ) 
    {   
       //do some stuff    
    }

The function:

int read_jpeg_file( const char *filename )
 {
         /* these are standard libjpeg structures for reading(decompression) */
         struct jpeg_decompress_struct cinfo;
         struct jpeg_error_mgr jerr;
         /* libjpeg data structure for storing one row, that is, scanline of an image */
         JSAMPROW row_pointer[1];

         FILE *infile = fopen( filename, "rb" ); //this line is where the debugger stops with a Bus Error
         unsigned long location = 0;
         int i = 0;

         if ( !infile )
         {
                 printf("Error opening jpeg file %s\n!", filename );
                 return -1;
         }
         return 1;
 }

The file I am passing in does exist. I can see that it shows up as the right sting to the full path in the debugger.


I think you're having a memory access problem because of the filename variable... Instead of: char *infilename = "/home/dcole/Images/lena1024s.jpg";

try using: char infilename[] = "/home/dcole/Images/lena1024s.jpg";

0

精彩评论

暂无评论...
验证码 换一张
取 消