Getting File Name

Hi!

I'm developing an application program by C++ language in the UNIX environment and I would know the name of last file written at a particular path and with a particular prefix.
For instance, I need someting like output of following UNIX pipelined command:

ls -t $PATHFILE/file_prefix_* | head -1

How can I achieve the same result in C++? I tried with the system call:

system( "ls -t $PATHFILE/file_prefix_* | head -1 > tmpfile" );

In this way I saved filename I'm looking for in tmpfile, but I don't think it is a good solution.

Many thanks. Bye,
Paride

You can use readdir() to read a directory. Then use lstat() on each file.

Many thanks! My application is working!

Bye,
Paride

That is definately more reliable than a tmp file, but another solution - just for giggles - would be to use popen on the command and avoid the temp file, reading the output of the ls command directly through the pipe.

Just a thought...popen is not the best solution in this case - given the various shells aliases and things could preclude the ls from functioning as desired - but popen is a nice thing to explore.

It's not the temp file that bothers me. It's the extra processes. First you launch a shell. It reads a command line. It launches a pair of processes. Then you read the temp file.

Now compare that to just reading the directory.

And popen() is not much better.