element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum Raspberry Pi web server using PiFace, getting "Bad file descriptor"
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
Raspberry Pi Wishlist
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Verified Answer
  • Replies 5 replies
  • Answers 1 answer
  • Subscribers 684 subscribers
  • Views 798 views
  • Users 0 members are here
  • badfiledescriptor
  • raspberry-pi
  • cgi
Related

Raspberry Pi web server using PiFace, getting "Bad file descriptor"

Former Member
Former Member over 11 years ago

Hi

 

Using a Raspberry Pi Model B with PiFace. I have downloaded, built and installed the PiFace libraries and enabled the spi devices. I wrote a C program and can turn the relays on and off. That program also sends HTML to the stdout. Indeed when executed I see the HTML on stdout.

 

I have downloaded and installed Apache2. A simple 'Hello World' app runs when I hit the cgi-bin directory with a web-browser. When, I try to hit my c-program using the cgi-bin in my web browser, I get the HTML presented to my browser. I print the time to the webpage so that I know it is working. However, the PiFace IO does not work. If I just run the c-program from the CLI in the cgi-bin directory, it generates the HTML with the time-stamp and actually executes the IO operations.

 

I browse to the Apache2 error log and see this error message "ERROR: Can not send SPI messageBad file descriptor".

 

My c-program has execute permissions.

The spi_bcm2708 module is loaded as confirmed by lsmod.

I get crw-rw---T on both /dev/spidev0.0 and /dev/spidev0.1 when using ls -l /dev/spidev*

 

Any ideas for what else I need to do to make the IO operate under CGI?

Thanks

  • Sign in to reply
  • Cancel
Parents
  • mconners
    0 mconners over 11 years ago

    It may be that the web server doesn't have permission to open the SPI device. Apache servers are often setup to run as "nobody". Are you running as root when you run the program from the command line? You may have to perform some permission gymnastics to make it accessible from a cgi program.

     

    Mike

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to mconners

    Thanks Mike, I feel like I am getting closer. I'm very new to Linux, so learning a lot.

    When I run my program from cgi-bin I'm running as root. i.e. ./toggle executes my program toggle.

    But, when I run using sudo -u nobody ./toggle I get the same error as what I see in the apache log.

    I have tried changing ownership and groups for toggle but so far no luck.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • Former Member
    0 Former Member over 11 years ago in reply to mconners

    Thanks Mike, I feel like I am getting closer. I'm very new to Linux, so learning a lot.

    When I run my program from cgi-bin I'm running as root. i.e. ./toggle executes my program toggle.

    But, when I run using sudo -u nobody ./toggle I get the same error as what I see in the apache log.

    I have tried changing ownership and groups for toggle but so far no luck.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube