Hi Alex,
>> Alex, I need to call 'lseek' function. How could I get hold of the
>> current input and output file descriptors? I want to feed it to the
>
> Yep, implementing 'ifd' and 'ofd' (analog to 'ipid' and 'opid') would be
> the right way.
do you think it would be possible to include the following code in the
standard release?
#include <sys/types.h>
#include <unistd.h>
// (fpos 'fd) -> cnt
// (fpos 'fd 'off) -> cnt
// (fpos 'fd 'off 'flg) -> cnt
any fpos(any ex) {
int fd = evCnt(ex, cdr(ex));
off_t off = 0;
int whence = SEEK_CUR;
if(!isNil(cddr(ex))) {
off = evCnt(ex, cddr(ex));
if(!isNil(cdddr(ex))) {
any w = evExpr(ex, cdddr(ex));
whence = isNil(w) ? SEEK_SET : SEEK_END;
}
}
off_t z = lseek(fd, off, whence);
return boxCnt(z);
}
// (idf) -> cnt
any ifd(any ex __attribute__((unused))) {
return boxCnt(InFile->fd);
}
// (odf) -> cnt
any ofd(any ex __attribute__((unused))) {
return boxCnt(OutFile->fd);
}
// (fpos 'fd) -> cnt ... Gets current file position
// (fpos 'fd 'off) -> cnt ... Moves position relative to the current one
// (fpos 'fd 'off 'flg) -> cnt ... Goes to the beginning (flg=NIL)
otherwise to start
Thank you,
Tomas
--
UNSUBSCRIBE: mailto:[email protected]?subject=unsubscribe