Tag: linux

如何从C代码加载Linux内核模块?

我有一个具有两个外部内核模块和一个用户空间守护程序的应用程序。 我想在启动时从C编写的守护程序代码加载模块,并在干净退出时卸载它们。 我可以用比system(“modprobe module”);更清洁的方式加载它们system(“modprobe module”); 并使用相应的rmmod卸载它们?

如何在Linux中打印C中毫秒和纳秒精度的时差?

我有这个程序打印2个不同实例之间的时差,但它打印精度为秒。 我希望以毫秒为单位打印它,另一个以纳秒为单位进行打印。 //Prints in accuracy of seconds #include #include int main(void) { time_t now, later; double seconds; time(&now); sleep(2); time(&later); seconds = difftime(later, now); printf(“%.f seconds difference”, seconds); } 我怎么能做到这一点?

在Linux上直接访问C程序没有FS的硬盘

我想直接从C程序访问整个硬盘。 它上面没有FS,永远不会是一个。 我只想打开/ dev / sda(例如)并在磁盘的块/扇区级别执行I / O. 我打算在Linux环境中编写一些用于学习C编程的程序(我知道C语言,Python,Perl和Java),但对Linux环境缺乏信心。 为了我的学习目的,我正在考虑使用kyoto-cabinet并将与计算的哈希相对应的值直接保存到硬盘的“块/扇区”中,将对:“哈希,块/扇区引用”记录到一个kyoto-cabinet哈希数据库文件。 我不知道使用标准CI / Ofunction是否可行,否则我不得不写一个“设备驱动程序”或类似的东西……

如何在C中的分叉进程上使用POSIX信号量?

我想分叉多个进程,然后在它们上使用信号量。 这是我尝试过的: sem_init(&sem, 1, 1); /* semaphore*, pshared, value */ . . . if(pid != 0){ /* parent process */ wait(NULL); /* wait all child processes */ printf(“\nParent: All children have exited.\n”); . . /* cleanup semaphores */ sem_destroy(&sem); exit(0); } else{ /* child process */ sem_wait(&sem); /* P operation */ printf(” Child(%d) is in […]

如何检测Linux上程序的启动?

我写了一个简单的守护进程。 当我运行任何程序时,该守护进程应该响应。 这该怎么做? 在一个大守护进程循环中: while(1) { /* function which catches new programm running */ } 当我运行一个新程序(创建新进程)时,在linux中调用什么函数?

在同一端口上接收多个组播源 – C,Linux

我有一个应用程序从同一端口上的多个组播源接收数据。 我能够收到数据。 但是,我试图考虑每个组的统计信息(即收到的消息,收到的字节数),并且所有数据都混淆了。 有谁知道如何解决这个问题? 如果我试着查看发件人的地址,那么它不是多播地址,而是发送机器的IP。 我使用以下套接字选项: struct ip_mreq mreq; mreq.imr_multiaddr.s_addr = inet_addr(“224.1.2.3”); mreq.imr_interface.s_addr = INADDR_ANY; setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)); 并且: setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &reuse, sizeof(reuse));