Tag: linux

为什么printf显示unsigned int的负值?

可能重复: 带有负值的无符号长整数 我编写了一个内核模块,它可以中断任何系统调用,打印其当前的user_id和传递给系统调用函数的输入参数。 其中一个是sys_ioctl(),如下所示: asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd,unsigned long arg); 这意味着所有输入参数都是无符号的int数。 但是当我打印输入参数时,我得到以下输出: fd=21, cmd=-1072143871 and arg=3202983648 fd=21, cmd=-1072143871 and arg=3202983648 fd=21, cmd=-1072143871 and arg=3202983648 ———- 这是我的函数定义: asmlinkage long our_sys_ioctl(unsigned int fd , unsigned int cmd , unsigned long arg) { uid_t gtuid ; gtuid = getuid_call(); printk (“our_sys_ioctl —> uid = […]

如何从s64值中删除前3个字节和最后一个字节?

代码: s64 end_time; struct timespec ts; getrawmonotonic(&ts); end_time = timespec_to_ns(&ts); 如何从end_time删除前三个字节并从中end_time最后一个字节? 我想将它存储在uint32中。 谁能告诉我怎么做? uint32 latency; fscanf(fp, “%lu\n”, latency); //fp is reading the end_time and storing in latency. latency = (uint32) (latency >> 8) & 0xFFFFFFFF;

如何解决这个Linux Timer

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define million 1000000L timer_t firstTimerID, secondTimerID, thirdTimerID; double Task2ms_Raster, Task10ms_Raster, Task100ms_Raster; struct sockaddr_in addr, client; int acceptSocket; char buf[256]; long rc, sentbytes; int port = 18037; void TASK1(Task2ms_Raster) { struct timespec start, stop; double startTime, stopTime; if( (startTime = […]

bash:/ usr / bin / hydra_pmi_proxy:没有这样的文件或目录

在Ubuntu教程中设置MPICH2集群后,我正在努力设置MPI集群。 我有运行的东西,我的机器文件是这样的: pythagoras:2 # this will spawn 2 processes on pythagoras geomcomp # this will spawn 1 process on geomcomp 该教程指出: 并运行它(-n旁边的参数指定在节点之间生成和分发的进程数):mpiu @ ub0:〜$ mpiexec -n 8 -f machinefile ./mpi_hello 使用-n 1和-n 2它运行正常,但是使用-n 3,它会失败,如下所示: gsamaras@pythagoras:/mirror$ mpiexec -n 1 -f machinefile ./mpi_hello Hello from processor 0 of 1 gsamaras@pythagoras:/mirror$ mpiexec -n 2 -f machinefile ./mpi_hello Hello […]

对于multithreadingTCP客户端执行’close()’时未发送TCP FIN

我在下面写了multithreadingTCP客户端,它基本上产生了一个单独的线程来接收数据但是数据是在主线程中写入的,只是在标准输入上从用户那里获取了输入。 现在,按下了ctrl ^ D然后实现来自循环(围绕getline()调用)并关闭套接字描述符但是在线上没有看到FIN。 但是,用shutdown()替换close()会产生影响。 使用close()没有FIN在线路上发送,但是关闭(fd,SHUT_WR)FIN在线路上发送? 为什么会有这种差异? #include #include #include #include #include #include #include void *receiver (void *arg); pthread_t thrid; int sockfd; int reUse = 0; int main (int argc, char *argv[]) { struct sockaddr_in servaddr; struct sockaddr_in clntaddr; char *line; size_t len = 0; size_t read; int bytes; if (argc < 6) { printf […]

开罗从数据加载图像

我对cairo库有疑问。 我下载了一张图片,然后将其放入缓冲存储器中。 在cairo中是否有任何解决方案从内存中的数据加载图像? 谢谢

C socket多个本地ips

我们的服务器上有N个本地ip。 我需要使用其中一个创建套接字连接。 我怎样才能做到这一点 ? fd = socket(AF_INET, SOCK_STREAM, 0); connect(fd, (struct sockaddr*)addr, sizeof(*addr)); // …

进程会话或组的领导者是否可以离开另一个现有会话或组?

进程会话或组的ID是其会话或组长的pid。 会话或小组是否固定在其领导者身上? 特别: 在会话中,会话负责人是否可以将其留给另一个现有会话,而不是创建新会话并引导它? 如果是,会话是否仍会保持其会话ID不变,即与原始会话负责人的pid相同? 在一个小组中,其小组组长是否可以将其留给另一个现有小组,而不是创建一个新小组并领导它? 如果是,该组是否仍然保持其组ID不变,即与原始组长的pid相同? 如果是,通过什么API函数或系统调用函数? 问题的动机是,setpgid()的第一个参数是会话领导者还是组长? 谢谢。

C系统函数导致错误’sh:语法错误:“(”意外“

我在Linux上用C编写了一个简单的程序来删除目录中的所有文件,除了一个名为svn的文件,如下所示: 1 #include 2 3 int main() 4 { 5 system(“rm !(svn)”); 6 return 0; 7 } 但是当我编译并运行它时,终端说: sh: Syntax error: “(” unexpected 但是,当我直接在终端中键入并运行命令时,所有操作都正确完成。 有任何想法吗?

如何知道一个进程是否已经启动但是在Linux中崩溃了

请考虑以下情况: – 我正在使用Linux。 我怀疑我的应用程序崩溃了。 我没有启用核心转储。 日志中没有信息。 我怎么能确定,在系统重启后我的应用程序启动了,但现在它没有运行,因为它已经崩溃了。 我的应用程序配置为服务,用C / C ++编写。 在某种程度上: 如何获得自系统启动以来执行的所有进程/服务名称? 它甚至可能吗? 我知道,我可以启用日志记录并再次启动进程以获取崩溃。