1 /**************************************************************/
2 /* CAN system calls example */
3 /* Author: Michal Sojka, Czech Technical University in Prague */
4 /* License: Public domain */
5 /**************************************************************/
15 #include <sys/ioctl.h>
17 int init_read_socket(const char *dev)
20 struct sockaddr_can addr;
23 sock = CHECK(socket(PF_CAN, SOCK_RAW, CAN_RAW));
25 strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name));
26 if (-1 == ioctl(sock, SIOCGIFINDEX, &ifr)) {
31 addr.can_family = AF_CAN;
32 addr.can_ifindex = ifr.ifr_ifindex;
34 CHECK(bind(sock, (struct sockaddr *)&addr, sizeof(addr)));
39 void can_read(int sock)
42 int ret = read(sock, &cf, sizeof(cf));
44 if (ret != sizeof(cf)) {
52 int main(int argc, char *argv[])
57 dev = candump_parse_args(argc, argv);
59 sock = init_read_socket(dev);