![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| High Level Programming Post questions about C, C++, Java, SQL, and other programming languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| C++ map program - Error message | dhanamurthy | High Level Programming | 0 | 04-02-2008 06:57 PM |
| Error in AWK Program | bikas_jena | Shell Programming and Scripting | 3 | 01-07-2008 02:30 PM |
| Program Error | Carmen123 | AIX | 0 | 11-23-2006 07:20 AM |
| unix - c program sending error from DB to email | chino_52284 | Shell Programming and Scripting | 2 | 04-28-2005 08:12 PM |
| Error Compiling C program | Vivek | High Level Programming | 3 | 10-25-2001 11:13 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
little program error.
I am trying to work this little program, its not working..
Code:
int main()
{
FILE *fp;
char *args[40];
pid_t child, exited_pid;
int status = 0;
*args[0] = "less";
fp = popen("ls", "r");
child = fork();
if(child == 0)
{
dup2(fp->fd, 0);
if(execvp(args[0], args) == -1)
{
printf("error");
exit(EXIT_FAILURE);
}
wait(&status);
wait(&status);
}
I got error. Warning: assignment makes integer from pointer without a cast Error: 'FILE' has no member named 'fd' Error: expected declaration or statement at end of input. My whole goal of the program is to execute ls, and read from that program & store it in the buffer. Then my second program (argss[0]) reads the input coming from there and uses it... help plz ![]() |
|
||||
|
C: FILE Structure !, FILE structure in C
Code:
typedef struct {
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File descriptor */
unsigned char hold; /* Ungetc char if no buffer */
int bsize; /* Buffer size */
unsigned char *buffer; /* Data transfer buffer */
unsigned char *curp; /* Current active pointer */
unsigned istemp; /* Temporary file indicator */
short token; /* Used for validity checking */
} FILE;
|
|
||||
|
FILE is opaque -- you're not supposed to mess with what's inside, because it might be different everywhere you go. It's like a system call, you aren't supposed to ask the kernel what's inside its file tables. Technically you can get the fd with fileno() but since any actions on fp after you mess with its raw file descriptor may be unpredictable, I'd suggest making a pipe(), forking, and redirecting through the pipe instead. That's how popen works anyhow.
Last edited by Corona688; 11-18-2008 at 04:49 PM.. |
|
||||
|
This is wrrong too:
Code:
*args[0] = "less" Code:
args[0] = "less" |
| Sponsored Links | ||
|
|
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|