Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7750253
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 1, 20262026-06-01T11:14:34+00:00 2026-06-01T11:14:34+00:00

My C/C++ program takes a file from the command line as an argument. Reading

  • 0

My C/C++ program takes a file from the command line as an argument. Reading data from ‘regular files’ is no problem/general programming task, but when the file comes from a ‘device pipe’ such as /dev/fd/63 it causes my program to crash.

To reproduce:

from your friendly neighborhood bash shell supply a ‘device pipe’ as a file to your application. Your app should try to read the file contents into a buffer.

./yourapp <(echo ‘Hello World!’); # /dev/fd/xx containing output from echo command.

Note the above command is not redirecting the standard input of the application and that is not the intended result..

I don’t think that a lot of people know this will crash their application. The application ‘seed’ from the Gnome project uses glib to do its I/O but it can read from these files just fine. The command ‘cat’ can also handle this situation gracefully. Why is it when I try to read the contents of that named pipe like a regular file my application gets the crash bug?

EDIT: relavent code section

#include <stdio.h>

int main(int argc, char **argv) {

    FILE *file;

    char *buffer;

    unsigned long fileLen;

    //Open file
    file = fopen(argv[1], "rb");
    if (!file) return -1;

    //Get file length
    fseek(file, 0, SEEK_END);
    fileLen=ftell(file);

    fseek(file, 0, SEEK_SET);

    //Allocate memory
    buffer=(char *)malloc(fileLen+1);

    if (!buffer){
        fprintf(stderr, "Memory error!");
        fclose(file);
        return -2;
    }

    //Read file contents into buffer
    fread(buffer, fileLen, 1, file);
    fclose(file);

    fprintf(stdout, "Size: %i", fileLen);

    free(buffer);

}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-01T11:14:35+00:00Added an answer on June 1, 2026 at 11:14 am

    Can’t call fseek on a pipe. The code shows that I was indeed trying to do such a foolish thing.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm writing a program which takes filenames and options on the command line in
I have a command-line process that creates a PDF file from an HTML file
This program takes the first number in a file and indicates how many numbers
I am building a program that takes an input file in this format: title
I'm trying to create a program that takes a text file of c++ code
I've cobbled together a C# program that takes a .csv file and writes it
I'm trying to write a program that takes a large file (of any type)
I have a perl program that takes input and output file arguments, and I'd
I'm working on a program that takes in a Wavefront .obj file and eventually
I want to write a simple program that takes a moderately sized wav file

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.