On Tue, Feb 3, 2009 at 10:18 AM, Srinivas G.
<srinivasg@xxxxxxxxxxxxxxxxxxxxx> wrote:
> Dear All,
>
> I have written a small thread program in C using the pthreads. I am able
> to set the threads priority with pthread_setschedparam API when I login
> as ROOT. If I login as a normal user other than ROOT, then the API
> returns the error number 1 (EPERM).
>
> Please let me know whether a normal user can set the pthreads priority
> with pthread_setschedparam API or not.
The man page says it all
!EPERM!
the calling process does not have superuser permissions
you cannot unless you have superuser permissions.
Thanks -
Manish
>
> Here is the sample code for testing.
>
> /*
> * Creates two threads, one printing 10 "a"s,
> * the other printing 10 "b"s.
> * Illustrates: thread creation, thread joining.
> */
>
> #include <stddef.h>
> #include <stdio.h>
> #include <unistd.h>
> #include "pthread.h"
> #include <errno.h>
>
> void * process(void * arg)
> {
> int i;
> fprintf(stderr, "Starting process %s\n", (char *) arg);
> for (i = 0; i < 10; i++) {
> write(1, (char *) arg, 1);
> }
> fprintf(stderr,"\n");
>
> return NULL;
> }
>
> int main()
> {
> int retcode;
> pthread_t th_a, th_b;
> void * retval;
> struct sched_param sp;
> int esnRetVal = 0;
> pthread_attr_t attr;
>
> pthread_attr_init(&attr);
> pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED);
>
> retcode = pthread_create(&th_a, &attr, process, "a");
> if (retcode != 0) fprintf(stderr, "create a failed %d\n", retcode);
>
> sp.sched_priority = 30;
> esnRetVal = pthread_setschedparam(th_a, SCHED_RR, &sp);
> if(esnRetVal != 0)
> {
> printf("Failed to set the pthread sched param! esnRetVal = %d errno
> = %d\n", esnRetVal, errno);
> return -1;
> }
>
> retcode = pthread_create(&th_b, NULL, process, "b");
> if (retcode != 0) fprintf(stderr, "create b failed %d\n", retcode);
>
> retcode = pthread_join(th_a, &retval);
> if (retcode != 0) fprintf(stderr, "join a failed %d\n", retcode);
>
> retcode = pthread_join(th_b, &retval);
> if (retcode != 0) fprintf(stderr, "join b failed %d\n", retcode);
>
> return 0;
> }
>
> Thanks in advance.
>
> With Regards,
> Srinivas G
> --
> To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux Assembler]
[Git]
[Kernel List]
[Fedora Development]
[Fedora Announce]
[Autoconf]
[Yosemite Campsites]
[Yosemite News]
[GCC Help]