Hi Sandip,

I think that you know on the 64-bit Unix/Linux/OS X platforms, long is
64-bit whereas int and INTEGER are 32-bit, so return directly Integer
unexpected problems may occur.

Cheers,
Bill


2014-03-17 13:24 GMT+08:00 Sandip Nandi <sanna...@umail.iu.edu>:

> Hi Bill ,
>
> The following C code  may help you , time_t is typedef to long int
>
> SEXP  getTime() {
>
>   time_t current_time;
>     char* c_time_string;
>     current_time = time(NULL);
>     c_time_string = ctime(&current_time);
>
>    return mkString(c_time_String); // or if you want to return as int
> vector return scalarInt(current_time);
> }
>
> If you feel anything wrong , I will be very happy to know .
>
> Thanks,
> Sandip
>
>
> On Sun, Mar 16, 2014 at 9:54 PM, Bill Wang <freecn...@gmail.com> wrote:
>
>> Hi Dirk,
>>
>> Thanks for your reply, I neede convert time_t to R type in C code, can not
>> use Rcpp. Maybe Rcpp source code could help me.
>>
>> Cheers,
>> Bill
>>
>>
>> 2014-03-16 22:55 GMT+08:00 Dirk Eddelbuettel <e...@debian.org>:
>>
>> >
>> > On 16 March 2014 at 18:36, Bill Wang wrote:
>> > | I am writing a R extensions, and I need pass time_t to R in C, but I
>> > don't
>> > | know how to do.
>> > | Can you give me some help? do not use double directly.
>> >
>> > Just treat it as an int:
>> >
>> >   R> library(Rcpp)
>> >   R> cppFunction("Date time_t2date(time_t what) { return((int) what);
>> }")
>> >   R> time_t2date(0)
>> >   [1] "1970-01-01"
>> >   R> time_t2date( Sys.Date() )
>> >   [1] "2014-03-16"
>> >   R>
>> >
>> >
>> > Here I use Rcpp to define the 'time_t2date' function on the fly.
>> >
>> > It takes the time_t and returns a Date type (which here is a C++ Date
>> type
>> > mapping to the R Date -- you can ignore that, but will have to write the
>> > legwork yourself if you don't use Rcpp).
>> >
>> > As 'time_t' is 'long int' on my system, so I cast it to int. The rest is
>> > automagic (thanks to RcpP).
>> >
>> > Notice that I also get today's date down and up correctly.
>> >
>> > See 'Writing R Extensions' for the details at the C level.
>> >
>> > See the Rcpp documentation (and, if I may, my book) for details on Rcpp
>> if
>> > that interests you.
>> >
>> > Dirk
>> >
>> > --
>> > Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com
>> >
>>
>>
>>
>> --
>>
>> *Travel | Programming*
>> *http://freecnpro.net* <http://freecnpro.net>
>>
>>         [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-devel@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
>


-- 

*Travel | Programming*
*http://freecnpro.net* <http://freecnpro.net>

        [[alternative HTML version deleted]]

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to