Files
harbour-core/harbour/source/tools/io.c
2000-03-02 11:58:22 +00:00

90 lines
1.5 KiB
C

/*
* $Id$
*/
#include "hbapi.h"
#ifdef DOS
#include <dos.h>
#include <dir.h>
#include <bios.h>
#endif
HARBOUR HB_CD( void )
{
#ifdef __DOS__
hb_retni( ISCHAR( 1 ) ? chdir( hb_parc( 1 ) ) : 0 );
#else
hb_retni( 0 );
#endif
}
HARBOUR HB_MD(void)
{
#ifdef __DOS__
hb_retni( ISCHAR( 1 ) ? mkdir( hb_parc( 1 ) ) : 0 );
#else
hb_retni( 0 );
#endif
}
HARBOUR HB_RD( void )
{
#ifdef __DOS__
hb_retni( ISCHAR( 1 ) ? rmdir( hb_parc( 1 ) ) : 0 );
#else
hb_retni( 0 );
#endif
}
HARBOUR HB_DISKUSED( void )
{
#ifdef DOS
struct diskfree_t disk;
long bytsfree, bytsfull;
_dos_getdiskfree( 0, &disk );
bytsfree = ( long ) disk.avail_clusters *
( long ) disk.sectors_per_cluster *
( long ) disk.bytes_per_sector;
bytsfull = ( long ) disk.total_clusters *
( long ) disk.sectors_per_cluster *
( long ) disk.bytes_per_sector;
hb_retnl( bytsfull - bytsfree );
#else
hb_retnl( 0 );
#endif
}
HARBOUR HB_DISKFREE( void )
{
#ifdef DOS
struct diskfree_t disk;
_dos_getdiskfree( 0, &disk );
hb_retnl( ( long ) disk.avail_clusters *
( long ) disk.sectors_per_cluster *
( long ) disk.bytes_per_sector );
#else
hb_retnl( 0 );
#endif
}
HARBOUR HB_DISKFULL( void )
{
#ifdef DOS
struct diskfree_t disk;
_dos_getdiskfree( 0, &disk );
hb_retnl( ( long ) disk.total_clusters *
( long ) disk.sectors_per_cluster *
( long ) disk.bytes_per_sector );
#else
hb_retnl( 0 );
#endif
}