Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

NPAPI plugin fopen failing

Posted on 2014-02-11
4
Medium Priority
?
441 Views
Last Modified: 2014-02-16
Hi Experts,

I've got an NPAPI plugin that calls the following:

FILE * f = fopen("c:\\test.txt", "r");

I'm getting a bad pointer.  Is there something wrong with calling fopen from a plugin??

Thanks,
Mike
0
Comment
Question by:thready
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
4 Comments
 
LVL 86

Accepted Solution

by:
jkr earned 668 total points
ID: 39851826
Technically not. But, you might hit a permission problem with files stored in the root directory of the system drive. Furthermore, checking the return value is always a good idea, since 'fopen()' (http://msdn.microsoft.com/en-us/library/yeby3zcb.aspx) returns NULL when it encouters a problem. E.g.

FILE * f = fopen("c:\\test.txt", "r");

if (!f) {

  // check error code in 'errno' (http://msdn.microsoft.com/en-us/library/t3ayayh1.aspx)
}

Open in new window

0
 
LVL 35

Assisted Solution

by:sarabande
sarabande earned 668 total points
ID: 39853395
to add to before comment:


I'm getting a bad pointer
as explained by jkr the return value is NULL in case of failure. the debugger may name that a 'bad pointer' but actually a NULL pointer is not 'bad' itself but only if you expect a valid pointer to be returned by a function. a non-zero pointer should always be a valid file pointer.

the errno can be checked by including <errno.h> and code like

char szerr[1024] = { '\0' };
if (f == NULL)
{
    switch (errno)
    {
            case 2: strcpy(szerr, "file not found"); break;
            case 3: strcpy(szerr, "path not found"); break;
            case 4: strcpy(szerr, "too many open files"); break;
            case 5: strcpy(szerr, "access denied"); break;

Open in new window


a complete list of all error codes could be found in winerror.h but the 4 error codes handled in the sample are the most likely ones after fopen.

Sara
0
 
LVL 9

Assisted Solution

by:Subrat (C++ windows/Linux)
Subrat (C++ windows/Linux) earned 664 total points
ID: 39855088
Including to the above comments....
We can use ::GetLastError() win32 API to get the error code.
0
 
LVL 1

Author Closing Comment

by:thready
ID: 39863537
Thanks everyone
0

Featured Post

Important Lessons on Recovering from Petya

In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you are a web developer, you would be aware of the <iframe> tag in HTML. The <iframe> stands for inline frame and is used to embed another document within the current HTML document. The embedded document could be even another website.
This article offers some helpful and general tips for safe browsing and online shopping. It offers simple and manageable procedures that help to ensure the safety of one's personal information and the security of any devices.
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.
Google currently has a new report that is in beta and coming soon to Webmaster Tool accounts. This Micro Tutorial will highlight new features for Google Webmaster Tools.

722 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question