Articles of c + +

C中的isatty()是什么?

您好,谁能告诉我什么是参数isatty()在C中的参数。 我有以下代码,但我不明白第一个输出三个数字将是1,所有左边是0。 #include <unistd.h> #include <stdio.h> #include <stdlib.h> int main(){ for(int i=0;i<100;i++){ int t=isatty(i); printf("%d",t); } return 0; }

使用缓冲区溢出执行存储在环境variables中的shellcode

我正在使用下面的代码来尝试通过溢出searchstringvariables来执行存储在环境variables中的一些shellcode,以便main的返回地址包含anvironmentvariables的地址。 但是,在printf命令之前,出现了分段错误。 #include <stdio.h> #include <string.h> void main(int argc, char *argv[]){ char searchstring[100]; if(argc > 1) strcpy(searchstring, argv[1]); else // otherwise searchstring[0] = 0; printf("Here"); } 我使用编译代码 gcc -m32 -g -o overflow.o overflow.c -fno-stack-protector -z execstack 以禁用堆栈保护程序并使堆栈可执行。 我还通过修改/ proc / sys / kernel / randomize_va_space来禁用ASLR以包含0.我还将所有者和组更改为root: sudo chown root:root overflow.o sudo chmod u+s overflow.o 环境variables在shellcode之前包含一个NOP底座,我确定地址0xffffd910位于NOP底座的中间。 所以我运行程序使用 […]

可怕的行为

我写了follwing代码来演示同一进程的2个线程之间的竞争条件。 ` #include <stdio.h> #include <stdlib.h> #include <pthread.h> int c = 0; void *fnC() { int i; for(i=0;i<10;i++) { c++; printf(" %d", c); } } int main() { int rt1, rt2; pthread_t t1, t2; /* Create two threads */ if( (rt1=pthread_create( &t1, NULL, &fnC, NULL)) ) printf("Thread creation failed: %d\n", rt1); if( (rt2=pthread_create( &t2, NULL, […]

当perf stat没有提供线索时,我怎样才能解释一个较慢的执行?

我的程序测量执行500次函数所需的时间(这个时间约为14秒),并报告每次执行的平均时间。 由于精确的时间测量很重要,所以我非常小心地去除时间测量中所有可能的噪音源。 该程序在Ubuntu 14.04下运行,具有root权限, nice -n -20 ,在屏蔽的CPU上(使用-k on选项来cset shield )。 超线程被禁用。 内存只被分配一次,以避免由于malloc导致的上下文切换。 在计时开始之前执行一个大的memset和500预热function执行,试图在定时器启动之前获得类似的数据高速caching状态。 该程序是相当小的,所以我不担心指令caching。 时间是以clock_gettime(CLOCK_MONOTONIC)返回的两个值的差值来clock_gettime(CLOCK_MONOTONIC) 。 下面是从连续5次运行的报告时间(以毫秒为单位,但是测量的时间是这次的500次,所以它是大约14秒): 28.77 。 请注意,这里有三个非常一致的时序结果(#1,#3和#4)。 我正在寻求帮助来理解和消除exception值的来源。 以下是第一次和最后一次运行的性能perf stat报告: 第一次运行: 29176.113027 task-clock (msec) # 0.999 CPUs utilized 596 context-switches # 0.020 K/sec 0 cpu-migrations # 0.000 K/sec 5,061 page-faults # 0.173 K/sec 104,825,303,791 cycles # 3.593 GHz <not supported> stalled-cycles-frontend […]

如何编写一个MultiPart下载C ++程序

我想写一个C ++程序来下载HTTP文件。 为了学习,我想在我的程序中实现多方下载的方式DownThemAll! 确实。 在linux套接字上不能执行lseek。 我想这将是一些HTTP选项,我们需要指定,告诉从哪里开始下载文件。 因此,我们可以有多个连接到服务器。 这样对吗? 什么HTTP标头这样做?

在Ubuntu LInux中使用C APIlocking和解锁文件

如何在Ubuntu Linux中使用C语言locking文件达指定的时间段(10秒)?

如何在Linux中find软盘\ CD的扇区大小?

如何通过C ++代码获得Linux中软盘和CD盘的扇区大小? 谢谢你们。

使用sed删除C / C ++文件中的函数体

我正在试图从一个源文件中创build一个具有所有函数/枚举/结构/ etc名称的文件。 为此,我正在尝试使用sed来完成这样的事情: (原始文件) function add1 (int i) { return i+1; } (sed的输出) function add1 (int i) { } 换句话说,我想删除函数正文的实际内容。 我到目前为止还没有得到它的工作。 有什么build议么? 编辑 :我尝试了这样的事情,没有成功(现在我试图只在函数的身体空白行): sed '/{/,/}/ s/.*//'

如何在linux中获取usb的urb信息

我试图得到USB棒的urb信息。 我写如下: #include <sys/ioctl.h> #include <errno.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <usb.h> /* #include <stropts.h> */ /* #include <inttypes.h> */ #include <linux/usbdevice_fs.h> /* #include <asm/byteorder.h> */ /* #include <linux/usb/ch9.h> */ #define USBDEVFS_REAPURB _IOW('U', 12, void *) int main(int argc, char *argv[]) { int fd; int result; int i; struct […]

linux,C ++,xft:如何使用它?

我尝试使用Xft, 教程 ,让他们调用一个教程,看起来像写在朝鲜北方的营地…我也发现了这个。 所以让我尝试一步一步来做: // g++ XftTest.cc -lX11 -lXft `pkg-config –cflags freetype2` #include<unistd.h> #include<X11/Xlib.h> #include<X11/Xutil.h> #include<X11/Xft/Xft.h> int main() { Display *display; XftFont *font; XftDraw *xftdraw; XRenderColor xrcolor; XftColor xftcolor; display = XOpenDisplay(0); Window XP = XCreateSimpleWindow(display,DefaultRootWindow(display),0,0,360,90,0,0,0); XMapWindow(display,XP); font = NULL; /* added 6/16 */ //font = XftFontOpenName(display,0,"NorthKorea-50"); // how to check if this is good […]