# Using file descriptor sink?

**URL:** <https://www.ruby-forum.com/t/using-file-descriptor-sink/230101>\
**Category:** GNU Radio\
**Created:** [May 30, 2014, 5:20pm UTC](https://www.ruby-forum.com/t/using-file-descriptor-sink/230101 "2014-05-30T17:20:28Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![jason\_sam](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/7993a0/32.png) [@jason\_sam](https://www.ruby-forum.com/u/jason_sam)\
**Post date:** [May 30, 2014, 5:20pm UTC](https://www.ruby-forum.com/t/using-file-descriptor-sink/230101/1 "2014-05-30T17:20:28Z")

</div>

Hello GR,

Can anyone please give me some hints on how to use gr-file descriptor  
sink  
in a gnuradio python flowgraph.

Regards,  
Ruecan

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/Using-file-descriptor-sink-tp48640.html](http://gnuradio.4.n7.nabble.com/Using-file-descriptor-sink-tp48640.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![naeo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/57b2e6/32.png) [@naeo](https://www.ruby-forum.com/u/naeo)\
**Post date:** [May 30, 2014, 5:51pm UTC](https://www.ruby-forum.com/t/using-file-descriptor-sink/230101/2 "2014-05-30T17:51:33Z")

</div>

Hi Ruecan,

if you’re asking this question, you probably shouldn’t use  
file\_descriptor\_sink.  
It works quite like file\_sink, but instead of a filename, you pass a  
file descriptor, which is the int handler the open() syscall will  
return.

Greetings,  
Marcus

---

<div class="post-metadata">

**Author:** ![naeo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/57b2e6/32.png) [@naeo](https://www.ruby-forum.com/u/naeo)\
**Post date:** [May 30, 2014, 6:04pm UTC](https://www.ruby-forum.com/t/using-file-descriptor-sink/230101/3 "2014-05-30T18:04:27Z")

</div>

Ah sorry, forgot the important part: If you have opened a file from  
python, let’s say by:

myfile = open("/home/ruecan/secretplanforworlddominance.pdf", “r”)

you can get the file descriptor by doing  
fd = myfile.fileno()

Greetings,  
Marcus

---

<div class="post-metadata">

**Author:** ![naeo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/57b2e6/32.png) [@naeo](https://www.ruby-forum.com/u/naeo)\
**Post date:** [May 30, 2014, 6:16pm UTC](https://www.ruby-forum.com/t/using-file-descriptor-sink/230101/4 "2014-05-30T18:16:46Z")

</div>

My question is let say I have this socket

```
 self.blocks_socket_pdu_0_Rx = blocks.socket_pdu("UDP_CLIENT",

```

“localhost”, “4000”, 10000)

And then I need to associate a file descriptor to it.  
How can I have the int handler like the open() syscall would return ?

```
 self.myFileDescriptor = blocks.file_descriptor_sink(2048, ??)

```

Ruecan.

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/Using-file-descriptor-sink-tp48640p48644.html](http://gnuradio.4.n7.nabble.com/Using-file-descriptor-sink-tp48640p48644.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![naeo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/57b2e6/32.png) [@naeo](https://www.ruby-forum.com/u/naeo)\
**Post date:** [May 30, 2014, 6:26pm UTC](https://www.ruby-forum.com/t/using-file-descriptor-sink/230101/5 "2014-05-30T18:26:44Z")

</div>

-----BEGIN PGP SIGNED MESSAGE-----  
Hash: SHA1

Sorry, I don’t understand. Could you rephrase/elaborate on that?  
Where does the file descriptor come into play?

On 30.05.2014 18:15, Ruecan wrote:

> Ruecan.
> 
> – View this message in context:  
> [http://gnuradio.4.n7.nabble.com/Using-file-descriptor-sink-tp48640p48644.html](http://gnuradio.4.n7.nabble.com/Using-file-descriptor-sink-tp48640p48644.html)

Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

> \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ Discuss-gnuradio  
> mailing list [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> [Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio)

-----BEGIN PGP SIGNATURE-----  
Version: GnuPG v1  
Comment: Using GnuPG with Thunderbird - [http://www.enigmail.net/](http://www.enigmail.net/)

iQEcBAEBAgAGBQJTiLDtAAoJEBQ6EdjyzlHtsaQIAKlg6oAbSxm+MM7U5nkDm1sQ  
ppsjH7wuLB1IjocpLjDonIrXDEJDzzTpOxdT7p3LJUgujUHs9pKAq+W7IdccRy+u  
J1KzKYrvbdjOoWbpBVMymJ6IjkuTOYrlQKEOB9Z1sd73Y3zkhKYk8+HYx+nPXd2O  
76BY6AqvWEAlBl7VQTqR+dx/v5M5rU90eyanBN25A+V8lieUeU7s6D0qvcpsNuQZ  
35Qfdg5mTIcduc0k5k02l7HQAr+dXkTveqhRKlnffXIFPccMp1vrrYbQQlLMCKPJ  
vSlfc+a7+uYvSOzjV6Tckbiux5oGOMn3EiTUhgJzLX8UY67a9VzKmd7YGnrwxmw=  
=NeMU  
-----END PGP SIGNATURE-----

---

<div class="post-metadata">

**Author:** ![naeo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/57b2e6/32.png) [@naeo](https://www.ruby-forum.com/u/naeo)\
**Post date:** [May 30, 2014, 7:48pm UTC](https://www.ruby-forum.com/t/using-file-descriptor-sink/230101/6 "2014-05-30T19:48:10Z")

</div>

I mean if I try this:

> self.blocks\_socket\_pdu\_0\_Rx = blocks.socket\_pdu(“UDP\_CLIENT”, “localhost”,  
> “4000”, 10000)  
> self.myFileDescriptor = blocks.file\_descriptor\_sink(2048,  
> open(self.blocks\_socket\_pdu\_0\_Rx, ‘r+b’))

I got:  
TypeError: coercing to Unicode: need string or buffer, socket\_pdu\_sptr  
found

I don’t know how to get a file descriptor out of that to read it and  
retrieve packets received.

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/Using-file-descriptor-sink-tp48640p48647.html](http://gnuradio.4.n7.nabble.com/Using-file-descriptor-sink-tp48640p48647.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![naeo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/57b2e6/32.png) [@naeo](https://www.ruby-forum.com/u/naeo)\
**Post date:** [May 30, 2014, 8:02pm UTC](https://www.ruby-forum.com/t/using-file-descriptor-sink/230101/7 "2014-05-30T20:02:14Z")

</div>

I think you’re mixing things up.  
open() like you use it is a call to generate a python “file” object,  
which is not the file descriptor a file\_destructor\_sink needs.  
open() expects a string, but you offer a socket\_pdu shared pointer (ie.  
the python (swig) representation of the C++ block of that name).

I don’t really understand what you are trying to do; could you explain?  
I’m fairly certain file\_descriptor\_sink is not what you want…

Greetings,  
Marcus
